¤G¡B¬ÛÃöI´º
1.SIP²¤¶
2. Smartphone²¤¶
3. JMF (Java Media Framework)²¤¶
4. J2ME (Java 2 Platform, Micro Edition)²¤¶
5. RTP (Real-Time Transport Protocol)²¤¶
1.
SIP²¤¶ back
SIP¬OSession Initiation Protocol
ªºÁY¼g¡F¬O¤@ºØÈÐÀ³¥Î¼hÈЪº³q°T¨ó©w¡A¥Î©ó¡§«Ø¥ß¡¨¡B¡§Åܧ󡨡B¡§µ²§ô¡¨§Y®Éªº¦h´CÅé³q°T¡A¦ý¨Ã¤£t³d¹ê»Ú¤Wªº¸ê®Æ¶Ç¿é¡C¥Ñ©óSIP¨Ï¥Îtext-
baseªº·¾³q¤è¦¡¡A©Ò¥H¬[ºc¤ñ¸û²³æ¡A¨Ã¥B¥i¥H¦b¦P¤@Ó³s½u¤¤¶Ç»¼¦h¼Ë¤Æªº¸ê°T¡C¥t¥~¦]¬°SIP«Ø¥ß©óÀ³¥Î¼h¤¤¡A¦]¦¹³\¦h²{¦³ªºÀ³¥Î³nÅé¡A¥i¥H¸g²³æªº
קï«K©MSIPµ²¦X¡A¦Ó¹F¨ì¦h¤è¦h´CÅé³q°T¡C
SIP¶Ç¿éªº«Ø¥ß¡A¥Dn¬OclientºÝªºUser
Agent¤W½u«á¡A·|¦Vserverµù册¨Ãµn¿ýSIP¸¹½X¤ÎIPµ¥¸ê°T¡C·í¬Y¤@ºÝªºUAn©M¨ä¥¦½u¤WUA«Ø¥ß³s½u®É¡AÁܽФè·|¦Vserverµo¥X
INVITE¡AServer«K·|¬d¸ß³QÁܽФ誺IP¡A¨Ã±N¦¹n¨D¶Ç°eµ¹³QÁܽФè¡C·í³QÁܽФè¦^À³OK«á¡Aserver«K±N³QÁܽФ誺¦^À³¶Ç¦^µ¹ÁܽФè¡A¤§
«á¨âÓUA¶¡«K·|ª½±µ«Ø¥ß°_P2Pªº³s½u¡C
2.
Smartphone²¤¶ back
Smartphone¬O«ü¨ã¦³¥\¯à±j¤jªº§@·~¨t²Î¡A¨Ã¥Bµ²¦X¤F¹q¸Ü³q°T¤ÎÓ¤H¼Æ¦ì§U²z¡]PDA¡^¥\¯àªºµL½u¹q¸Ü¡C¤£¦ý¥]§t»yµ¤Î§Y®É°T®§¥\¯à¡A§ó¦³e-
mail¡B¦æ¨Æ¾ä©M³sµ¸¤Hµ¥Ó¤H¸ê°TºÞ²z¥\¥Î¡AÁÙ¥iÂǥѩM¹q¸£³s½u¡A¦w¸Ë·sªºÀ³¥Îµ{¦¡¡C
¸û±`¨£ªºSmartphone§@·~¨t²Î¦³sybian¥H¤ÎMicrosoftªºWindows
CE¡C¦ý¦Û±qMicrosoft±NPDA¤WªºWinCEºÙ¬°Poket
PC¡F±NSmartphone¤WªºWinCEºÙ¬°Smartphone«á¡ASmartphone«K¦¨¬°±M«ü¨Ï¥ÎMicrosoftªºSmartphone
§@·~¨t²Îªº¤â¾÷¡C
¦b¥»±MÃD¤¤¡A±N±Ä¥Î¤Wz«áªÌªº©w¸q¡C³ø§i¤¤Smartphone¬Ò¬O«ü¨Ï¥ÎMicrosoftªºSmartphone§@·~¨t²Îªº¤â¾÷¡C
3.
JMF (Java Media Framework)²¤¶ back
Java Media
Framework¬OSun©Òµo®iªº¤@®M¬[ºc¡A¥Øªº¬O¬°¤F±NTime-Based
Media»P§ÚÌ©Ò¼ôª¾ªºJavaÀ³¥Îµ{¦¡©ÎAppletµ²¦X¦b¤@°_¡A²³æ¨Ó»¡«K¬O§Q¥ÎJavaµ{¦¡»y¨¥¶}µo¦h´CÅéµ{¦¡®É©Òn¿í¦uªº¤@®M¬[ºc¡C
©Ò¿×Time-Based
Media¬O»¡¡A·í®É¶¡§ïÅܮɦ¹Àɮתº¤º®e¤]·|¸òµÛ§ïÅÜ¡A¤]´N¬O³o¤@¬íªºÀɮפº®e¥i¯à¸ò¤U¤@¬í¦³©Ò¤£¦P¡CÁ|¤Z¼v¤ùÀÉ¡BÁnµÀɵ¥µ¥¬Ò·|ÀHµÛ®É¶¡¶i¦æ¦Ó§ïÅÜ¡C
Media processing model
JMFªº¬[ºc¤è±¡A¬°¤FÅý¶}µoªÌ¯à°÷®e©ö¤W¤â¡AJMFªº¤j¬[ºc±Ä¥Î¤F«D±`¥Í¬¡¤Æªº¤è¦¡¡A¨Ò¦p¥Î¿ý¼v¾÷¨Ó¬Ý¼v¤ù¤@¯ë¡A¿ý¼v±a¬O¦¹¼v¤ùÀɮתº¸ê®Æ¨Ó·½¡A¦Ó¦¹¼v
¤ùÀɸg¹L¿ý©ñ¼v¾÷ªº³B²z«á±N¼v¹³Àɧe²{¦b¹qµø¿Ã¹õ¤W¡B±NÁnµ¼½©ñ¦b³â¥z¤W¡C¿ý©ñ¼v¾÷´N¬Û·í©ó¤@ÓPlayer©Î¬OProcessor¡A±NÀɮ׸g¹L³B²z«á¿é
¥X¡F¿Ã¹õ¤Î³â¥z´Nµ¥©ó¬O¿é¥X¸Ë¸m¡C
Recording, processing, and presenting time-based media
¥Î¤ñ¸û±M·~¤Æªº³N»y¨ÓÁ¿¡AÀɮרӷ½¥s°µData Source¡AData
Source¥i¯à¬O±qWeb Cam¤WÂ^¨ú¤U¨Óªº§Y®É¼v¹³(¦p¦P¥»±MÃD¬ã¨s)©Î¬O¨Ó¦Û©ó¦øªAºÝªºÀÉ®×µ¥µ¥¡A¦ÓWeb Camµ¥¡u»s§@¡vData
Sourceªº¤u¨ã´N¥s°µCapture Device¡F³B²zData
Sourceªº¤u¨ã¦³¨âºØ¢wPlayer¥H¤ÎProcessor¡A³B²zªº¤º®e¨Ò¦p±N¼v¤ùÀɲH¤Æ©Î¥[±j¦â±m¹ï¤ñ¡B±NÁnµÀɲf¨ú¥X·Qnªº³¡¤Àµ¥µ¥¡F
Playerªº³B²z¯à¤O¸û§C¡AProcessor«h¥i¥H¥Î¨Ó°µ¸û½ÆÂøªº³B²z¡FPlayer©ÎProcessor³B²z¹L«áªº¿é¥XÀÉ¥i¥ÎOutput
Device¥h§e²{¡C
Data
Source¥H¤ÎPlayerµ¥ªºAPI¬OÄÝ©ó¤ñ¸û°ª¶¥ªº¤u¨ã¡AJMF¤]´£¨Ñ¤ñ¸û§C¶¥ªºAPI¢wJMF Plug-In
API¡AÅý¶}µoªÌ¥i¥H¨ÌµÛ¦Û¤vªº»Ýn¥h°µ°ª¶¥API¯à¤O©Ò¤£¤Î¡B§ó¬°½ÆÂøªº³B²z¡A¤£¹L³o¤è±¨Ã¤£¦b¥»±MÃDªº¬ã¨s½d³ò¤¤¡C
High-level JMF achitecture
4.
J2ME (Java 2 Platform, Micro Edition)²¤¶
back
Java 2 Platform, Micro
Edition¬OSun¬°¤F¦]À³°O¾ÐÅé¤Î¥\¯à³£¨ü¨îªº¦æ°Ê³]³Æ¦Ó¶}µo¥X¨ÓªºÀô¹Ò¡A²³æ¨Ó»¡¡A´N¬°¤F¶}µo¤â¾÷¡BPDAµ¥¦æ°Ê¸Ë¸mªº³nÅé¦Ó³]pªºÀô¹Ò¡C¦¹Ãþ
¦æ°Ê³]³ÆÅé¿n¤p¡A¤º³¡ªº°O¾ÐÅé¸û¤@¯ë®à¤W«¬Ó¤H¹q¸£¤p¡ACPUªº¹Bºâ³t«×¤]¸ûºC¡A©TµM¦b¥\¯à¤W¤]·|¨ü¡A¤ñ¤§Ó¤H¹q¸£¨ä¥i¦æªº¥\¯à·íµM´N¤Ö«Ü¦h¡C¦]¦¹
J2MEªºAPIÁöµM¬O¥HJ2SE¬°°ò¦¦Óµo®i¡A¦ý«o¤ñJ2SEn¤pªº¦h¡A¦]¬°¦æ°Ê³]³Æªº°O¾ÐÅé¬Û·í¤p¡A©Ò¥H¥²¶·¼¶¼g¸û¤pªºµ{¦¡¥H°t¦X¤p°O¾ÐÅ骺¸Ë¸m¹B
§@¡C
J2ME©MJ2SE²Ä¤@Ó¤£¦Pªº¦a¤è¦b©óJ2SEªºÀ³¥Îµ{¦¡¥s°µApplication¡A¦ÓJ2ME«h¥s°µMIDlet¡CMIDlet¬O©Ò¦³J2MEÀ³¥Î
µ{¦¡ªº°ò¦¡A¦b¹ê°µ¤@ÓJ2MEªºÀ³¥Îµ{¦¡®É³Ì°ò¥»ªº¼gªk´N¬Oextends MIDlet¡C¨Ò¦p¡G
public class FrameTest extends MIDlet {}
°ò¥»¤W¤@ÓMIDlet´N¥Nªí¤â¾÷¤Wªº¤@Ó¶±¡A¤Á´«¨ì§Oªº¶±´Nµ¥©ó¤Á´«¨ì§OªºMIDlet¡C
¨C¤@ÓMIDlet³£¦³¥¦¦Û¤vªºLife-Cycle¡G
paused¡G¦¹MIDlet³Q¤¤Â_쥻¦b°õ¦æªº¤u§@¨ÃÄÀ¥X¸ê·½¡A§e²{¼È°±ªºª¬ºA¡C¨Ò¦p¬Ý§Y®É¼v¤ù®É¬ðµM¦³¤H¥´¹q¸Ü¨Ó¡A¦¹®É§Y®É¼v¤ùµ{¦¡«K¼È°±¡AÄÀ¥X¤â¾÷
¤Wªº¸ê·½¦p°O¾ÐÅé¡A°õ¦æ¹q¸Ü¤è±ªºµ{¦¡¡C
active¡G¦¹MIDlet¦b°õ¦æ·í¤¤
destroyed¡G¦¹MIDlet³Q¾P·´¡A¤]´N¬O¨äLifeµ²§ô¡C
MIDlet¡¦s Life Cycle
¨C¤@ÓJ2MEªºÀ³¥Îµ{¦¡¡A¥un¬On§e²{¥Xµe±ªº´N¤@©wn¦³Displayª«¥ó¡A§Q¥ÎDisplayª«¥óªºsetCurrent()¤èªk¨Óªí¥Ün§e²{ªºµe
±¡A¨Ò¦p¡G
Display.getDisplay(this). setCurrent(textBox)
<µù¤T>
5.
RTP (Real-Time Transport Protocol)²¤¶
back
Real-Time Transport
Protocol´£¨Ñ¨âºÝÂI§Y®ÉÀɮ׶ǿ骺¥\¯à¡A¥i¥H¥Î¦bunicast¥H¤Îmulticast¤W¡C
RTP architecture
RTPªA°È¯àÅý¨Ï¥ÎªÌ¤À¿ë¶Ç°eÀɮתº®æ¦¡¡B¶Ç¨ÓªºÀÉ®×n¥Î¤°»ò¼Ëªº¶¶§Ç¨Ó§e²{¥H¤Î±N¤£¦PÀɮ׮榡ªº¸ê®Æ¾ã¦X¦b¤@°_¡C
¤£¹LRTP¨Ã¤£«OÃҶǰeªº¸ê®Æ¨ìClientºÝ«á·|«Ü§¹¾ã©Î¦³«ö·Ó¶¶§Ç¡A¥Ñ©óRTP¬O«Øºc¦bUDP¤W¡A©Ò¥H«Ê¥]ªº¿òº|¥i¥H»¡¬O¬Û·íÀWÁc¡C¦]¦¹³o³¡¤À´N»Ýn
ClientºÝ¦b±µ¦¬Àɮ׫á¡A³z¹L¨C¤@Ó«Ê¥]¤Wªºpacket header¸ê°T¨Ó««ØÀÉ®×¥H¤Î¹ïº|±¼ªº«Ê¥]´£¥X¦A¶Ç¿éªºn¨D¡C
RTP data-packet header format