java JMF
JMF:(JavaTM Media Framework)ÊÇ´¦Àí¶àýÌåµÄ³ÌÐò½Ó¿Ú¡£
JMF¿ò¼ÜÖ÷ÒªÓÐÈýÖÖÄ£ÐÍ£¬·Ö±ðÊÇʱ¼äÄ£ÐÍ£¬Ê¼þÄ£ÐÍÒÔ¼°Êý¾ÝÄ£ÐÍ¡£Ê±¼äÄ£ÐͶ¨ÒåÁËJMFµÄ´¦ÀíýÌåÁ÷µÄʱ¼äÊý¾ÝµÄ½á¹¹¡£Ê¼þÄ£ÐͶ¨ÒåÁËJMF¿ò¼ÜµÄʼþÀàÐÍÒÔ¼°¸÷¸öʼþÀàÐÍÖ®¼äµÄ¹ØÏµ¡£Êý¾ÝÀàÐͶ¨ÒåÁËJMF´¦ÀíµÄýÌåÁ÷Êý¾ÝµÄÀàÐÍ¡£
ʱ¼äÄ£ÐÍ
JMFÖÐʱ¼äµÄ×îСµ¥Î»ÊÇÄÉÃë¡£ËùÓгÖJMFµÄʱ¼äÄ£Ð͵ÄÀ඼ʵÏÖÁËClock½Ó¿Ú¡£Clock½Ó¿Ú¶¨ÒåÁË»ù±¾µÄ¼ÆÊ±ºÍͬ²½²Ù×÷£¬ÒÔ¿ØÖÆÃ½ÌåÊý¾ÝµÄ³ÊÏÖ¡£
Clock½Ó¿ÚʹÓÃTimeBaseÀ´¸ú×ÙýÌåÁ÷µÄʱ¼ä¡£
Clock½Ó¿ÚÖеÄmedia time±íʾýÌåÁ÷Öеĵ±Ç°Î»Öá£Ã½ÌåÁ÷µÄ³õʼmedia timeÊÇ0,ýÌåÁ÷µÄĩβÊÇÁ÷µÄ×î´ómedia time.Duration±íʾµÄýÌåÁ÷µÄʱ¼ä³¤¶È¡£TimeBaseStartTime±íʾ²¥·ÅýÌåÁ÷µÄTime-base time.MediaStartTime±íʾ²¥·ÅýÌåÁ÷µÄÆðʼʱ¼ä¡£Rate±íʾClockÏà¶ÔTimeBaseµÄËÙ¶È¡£±ÈÈçRateΪ1´ú±íÕý³£µÄ²¥·ÅËÙ¶È£¬Èç¹ûΪ2´ú±íÊÇÕý³£ËٶȵÄ2±¶¡£
»»Ëã¹ØÏµÎª:MediaTime=MediaStartTime+Rate*(Time-Basetime - TimeBaseStartTime)
ʼþÄ£ÐÍ
JMFʹÓýṹ»¯µÄʼþ±¨¸æ»úÖÆÀ´¸ú×Ù»ùÓÚJMF¿ª·¢µÄ³ÌÐòµÄµ±Ç°×´Ì¬¡£»ùÓÚJMFµÄ³ÌÐò¿ÉÒÔÏìӦýÌåÇý¶¯µÄʼþ£¬Èçout-of dataºÍresource unavailableʼþ¡£ËùÓÐýÌåʼþ¶¼¼Ì³Ð×ÔMediaEventÀà¡£¿ÉÒÔͨ¹ýµ÷ÓÃaddListener·½·¨½«¸Ã½Ó¿Ú×¢²áµ½·¢²¼Ê¼þµÄ¶ÔÏóÉÏ£¬¼´¿ÉÔÚʼþ·¢Éúºó»ñµÃʼþ֪ͨ¡£
Êý¾ÝÄ£ÐÍ
JMFýÌå²¥·ÅÆ÷ͨ³£ÓÃDataSourcesÀàÀ´´¦ÀíýÌåÊý¾ÝµÄ´«Êä¡£DataSourcesÀà·â×°ÁËýÌåµÄλÖÃÐÅÏ¢¡¢ÐÒéÐÅÏ¢ÒÔ¼°´«ËÍýÌåµÄÈí¼þ¡£DataSourceÀà¿ÉÒÔͨ¹ýJMFµÄMediaLocatorÀà»òÕßÒ»¸öURL(Universal Resource Locator)ÀàÀ´±êʶ¡£MediaLocatorÀàËÆÓÚURLÀಢÇÒ¿ÉÒÔͨ¹ýURLÀàÀ´¹¹Ô죬ͬʱMediaLocator¿ÉÒÔÔÚÏàÓ¦µÄÐÒé´¦ÀíÆ÷ûÓа²×°µÄÇé¿öϱ»¹¹Ô죬¶øURL²»ÐС£
Ò»¸öDataSource¶ÔÏó¹ÜÀíһϵÁеÄSourceStream¶ÔÏó¡£±ê×¼µÄÊý¾ÝÔ´¼°×Ö½ÚÐòÁÐΪµ¥Î»½øÐд«Ê䣬»º³åÊý¾ÝԴʹÓÃBuffer¶ÔÏó×÷Ϊ²ûÊö¶ÔÏó¡£
ProcessorÓëPlayer
ÔÚJMF APIÖУ¬Processor ½Ó¿Ú¼Ì³ÐÁËPlayer½Ó¿Ú¡£Processor¶ÔÏó³ýÁËÖ§³ÖPlayer¶ÔÏóÖ§³ÖµÄËùÓй¦ÄÜÖ®Í⣬»¹¿ÉÒÔ¿ØÖƶÔÓÚÊäÈëµÄ¶
Ïà¹ØÎĵµ£º
1.³éÏ󣺳éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£¹ý³Ì³éÏóÊÇÖ¸ÈκÎÒ»¸öÃ÷È·¶¨Ò幦ÄܵIJÙ×÷¶¼¿É±»Ê¹ÓÃÕß¿´×÷µ¥¸öµÄʵÌå¿´´ý£¬¾¡¹ÜÕâ¸ö²Ù×÷ʵ¼Ê ......
JavaʹÓÃÁ½ÖÖ·½·¨À´´¦Àí¶àÏß³Ì
µÚÒ»ÖÖÊÇ×ÓÀ໯Thread¶ÔÏó¡£ Thread¶ÔÏóÊÇJavaÌṩµÄ·â×°Ï̵߳ĶÔÏó¡£Èç¹û×ÓÀ໯ThreadÀ࣬Ôò±ØÐëÖØÔØÕâ¸öÀàÖеÄrun·½·¨ÒÔÌṩÓÉÕâ¸öÌØÊâÏß³ÌÖ´ÐеĴúÂë¡£ÒòΪJava²»Ö§³Ö¶àÖØ¼Ì³Ð£¬ËùÒÔÈç¹ûÄãµÄÀàÐèÒª×ÓÀ໯ÁíÒ»¸öÀ࣬ÄÇô¾Í²»ÄÜ×ÓÀ໯Thread¶ÔÏó¡£
µÚ¶þÖÖÊÇʵÏÖÓÉJavaÌṩµÄRunnable ......
abstractÐÞÊηû
1.ÓÃabstractÐÞÊεÄÀà±íʾ³éÏóÀ࣬³éÏóÀàλÓڼ̳ÐÊ÷µÄ³éÏó²ã£¬³éÏóÀ಻Äܱ»ÊµÀý»¯£¬¼´²»ÔÊÐí´´½¨
³éÏóÀà±¾ÉíµÄʵÀý¡£Ã»ÓÐÓÃabstractÐÞÊεÄÀà³ÆÎª¾ßÌåÀ࣬¾ßÌåÀàÊÇ¿ÉÒÔ±»ÊµÀý»¯µÄ¡£
2.ÓÃabstractÐÞÊεķ½·¨±íʾ³éÏó·½·¨£¬³éÏó·½·¨Ã»Óз½·¨Ìå¡£³éÏó·½·¨ÓÃÀ´±íÊöÏµÍ ......
1£®Ç°ÑÔ
×î½ü£¬P2P£¨Peer-to-Peer£©ÓÖ³ÉΪÁËÒòÌØÍøÉϵÄÒ»¸öÈȵ㡣P2PÊÇÒòÌØÍøµÄÒ»ÖÖÓ¦ÓÃģʽ£¬ÆäÒâ˼ÊÇÖ¸ÍøÂçÉϵÄÈκÎÉ豸£¨°üÀ¨´óÐÍ»ú¡¢PC»ú¡¢PDA¡¢ÊÖ»ú¡¢»ú¶¥ºÐµÈµÈ£©¶¼¿ÉÒÔÆ½µÈµØÖ±½Ó½øÐÐÁ¬½Ó²¢½øÐÐÐ×÷¡£Ïë±Èµ±Ç°ÒòÌØÍøÉÏÖ÷Á÷µÄÓ¦ÓÃģʽClient/Server»òÕßClient/Service¶ø ......