Smartphone ¤WªºSIP¤Î§Y®É¼v­µªA°È¤§¬ã¨s

¤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¥D­n¬OclientºÝªºUser Agent¤W½u«á¡A·|¦Vserverµù册¨Ãµn¿ýSIP¸¹½X¤ÎIPµ¥¸ê°T¡C·í¬Y¤@ºÝªºUA­n©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±Ä¥Î¤W­z«áªÌªº©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
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
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·Q­nªº³¡¤Àµ¥µ¥¡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
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¤ñJ2SE­n¤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
MIDlet¡¦s Life Cycle

    ¨C¤@­ÓJ2MEªºÀ³¥Îµ{¦¡¡A¥u­n¬O­n§e²{¥Xµe­±ªº´N¤@©w­n¦³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 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
RTP data-packet header format