java¶ÁÈ¡mp3Îļþ ÊÕ²Ø
JMFʵ¼ÊÉÏÊÇJavaµÄÒ»¸öÀà°ü¡£JMF 2.1.1¼¼ÊõÌṩÁËÏȽøµÄýÌå´¦ÀíÄÜÁ¦£¬´Ó¶øÀ©Õ¹ÁËJavaƽ̨µÄ¹¦ÄÜ¡£ÕâЩ¹¦ÄܰüÀ¨£ºÃ½Ìå²¶»ñ¡¢Ñ¹Ëõ¡¢Á÷ת¡¢»Ø·Å£¬ÒÔ¼°¶Ô¸÷ÖÖÖ÷ҪýÌåÐÎʽºÍ±àÂëµÄÖ§³Ö£¬ÈçM-JPEG¡¢H.263¡¢MP3¡¢RTP/RTSP (ʵʱ´«ËÍÐÒéºÍʵʱÁ÷תÐÒé)¡¢Macromedias Flash¡¢IBMµÄHotMediaºÍBeatniksµÄRich Media Format (RMF)µÈ¡£JMF 2.1.1»¹Ö§³Ö¹ãÊÜ»¶ÓµÄýÌåÀàÐÍ£¬ÈçQuicktime¡¢Microsofts AVIºÍMPEG-1µÈ¡£´ËÍ⣬JMF 2.1.1Èí¼þÖаüÀ¨ÁËÒ»¸ö¿ª·ÅµÄýÌå¼Ü¹¹£¬¿Éʹ¿ª·¢ÈËÔ±Áé»î²ÉÓø÷ÖÖýÌ廨·Å¡¢²¶»ñ×é¼þ£¬»ò²ÉÓÃËûÃÇ×Ô¼ºµÄ¶¨ÖƵÄÄÚ²å×é¼þ¡£
ÔÚ¶ÁÈ¡mp3Îļþʱ£¬±ØÐëÒª¼ÓÈë2¸öjar°ü jmf.jarºÍsound.jar
view plaincopy to clipboardprint?
package gwm;
import java.io.File;
import java.io.IOException;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
/*
* java¶ÁÈ¡mp3Îļþ
*/
public class Music {&nb ......
Abstract
ÔÚ¿ª·¢ÖУ¬Èç¹ûij¸öʵÀýµÄ´´½¨ÐèÒªÏûºÄºÜ¶àϵͳ×ÊÔ´£¬ÄÇôÎÒÃÇͨ³£»áʹÓöèÐÔ¼ÓÔØ»úÖÆ£¬Ò²¾ÍÊÇ˵ֻÓе±Ê¹Óõ½Õâ¸öʵÀýµÄʱºò²Å»á´´½¨Õâ¸öʵÀý£¬Õâ¸öºÃ´¦ÔÚ
µ¥ÀýģʽÖеõ½Á˹㷺ӦÓá£Õâ¸ö»úÖÆÔÚsingle-threaded»·¾³ÏµÄʵÏַdz£¼òµ¥£¬È»¶øÔÚmulti-threaded»·¾³ÏÂÈ´´æÔÚÒþ»¼¡£±¾ÎÄ
ÖØµã½éÉܶèÐÔ¼ÓÔØ»úÖÆÒÔ¼°ÆäÔÚ¶àÏ̻߳·¾³ÏµÄʹÓ÷½·¨¡££¨×÷Õßnumberzero£¬²Î¿¼IBMÎÄÕ¡¶Double-checked locking
and the Singleton pattern¡·£¬»¶Ó×ªÔØÓëÌÖÂÛ£©
1 µ¥ÀýģʽµÄ¶èÐÔ¼ÓÔØ
ͨ³£µ±ÎÒÃÇÉè¼ÆÒ»¸öµ¥ÀýÀàµÄʱºò£¬»áÔÚÀàµÄÄÚ²¿¹¹ÔìÕâ¸öÀࣨͨ¹ý¹¹Ô캯Êý£¬»òÕßÔÚ¶¨Òå´¦Ö±½Ó´´½¨£©£¬²¢¶ÔÍâÌṩһ¸östatic getInstance·½·¨Ìṩ»ñÈ¡¸Ãµ¥Àý¶ÔÏóµÄ;¾¶¡£ÀýÈ磺
Java´úÂë < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20class%20Singleton%20%20%20%20%20%20%0A%7B%2 ......
JavaµÄ¿çƽ̨ÊÇͨ¹ýJavaÐéÄâ»ú£¨JVM£©À´ÊµÏֵġ£
JavaÔ´ÎļþµÄ±àÒë¹ý³Ì
JavaÓ¦ÓóÌÐòµÄ¿ª·¢ÖÜÆÚ°üÀ¨±àÒë¡¢ÏÂÔØ¡¢½âÊͺÍÖ´Ðм¸¸ö²¿·Ö¡£Java±àÒë³ÌÐò½«JavaÔ´³ÌÐò·ÒëΪJVM¿ÉÖ´ÐдúÂë—×Ö½ÚÂë¡£ÕâÒ»±àÒë¹ý³ÌͬC/C++µÄ±àÒëÓÐЩ²»Í¬¡£µ±C±àÒëÆ÷±àÒëÉú³ÉÒ»¸ö¶ÔÏóµÄ´úÂëʱ£¬¸Ã´úÂëÊÇΪÔÚÄ³Ò»ÌØ¶¨Ó²¼þƽ̨ÔËÐжø²úÉúµÄ¡£Òò´Ë£¬ÔÚ±àÒë¹ý³ÌÖУ¬±àÒë³ÌÐòͨ¹ý²é±í½«ËùÓжԷûºÅµÄÒýÓÃת»»ÎªÌض¨µÄÄÚ´æÆ«ÒÆÁ¿£¬ÒÔ±£Ö¤³ÌÐòÔËÐС£Java±àÒëÆ÷È´²»½«¶Ô±äÁ¿ºÍ·½·¨µÄÒýÓñàÒëΪÊýÖµÒýÓã¬Ò²²»È·¶¨³ÌÐòÖ´Ðйý³ÌÖеÄÄÚ´æ²¼¾Ö£¬¶øÊǽ«ÕâЩ·ûºÅÒýÓÃÐÅÏ¢±£ÁôÔÚ×Ö½ÚÂëÖУ¬ÓɽâÊÍÆ÷ÔÚÔËÐйý³ÌÖд´½¨ÄÚ´æ²¼¾Ö£¬È»ºóÔÙͨ¹ý²é±íÀ´È·¶¨Ò»¸ö·½·¨ËùÔڵĵØÖ·¡£ÕâÑù¾ÍÓÐЧµÄ±£Ö¤ÁËJavaµÄ¿ÉÒÆÖ²ÐԺͰ²È«ÐÔ¡£
Java½âÊÍÆ÷µÄÖ´Ðйý³Ì
ÔËÐÐJVM×Ö½ÚÂëµÄ¹¤×÷ÊÇÓɽâÊÍÆ÷À´Íê³ÉµÄ¡£½âÊÍÖ´Ðйý³Ì·ÖÈý²½½øÐУº´úÂëµÄ×°Èë¡¢´úÂëµÄУÑéºÍ´úÂëµÄÖ´ÐС£×°Èë´úÂëµÄ¹¤×÷ÓÉ“Àà× ......
·Ç³£¼òµ¥,ÔÚC#ÖÐÖ»ÐèÒªÔÚÀàµÄ·½·¨µÄÉÏ·½ÇÃÈýÏÂ"/"¾Í×Ô¶¯°ïÄãÌí¼ÓÏà¹ØµÄ´úÂë,ÄãÖ»Òª°´×ÅÌîд¾Í¿ÉÒÔÁË,¶øJavaÔòÊÇÊäÈë"/**",ËüÒ²»á×Ô¶¯ÐγÉÏà¹Ø´úÂë,¾ßÌå´úÂëÈçÏÂ:
C#
/// <summary>
/// ÔÚ´ËÌîд×ÜÌåÃèÊö
///</summary>
/// <param name="name">ÕâÀïÌîд²ÎÊýnameµÄÃèÊö</param>
public string printName(string name)
{
return "print:"+name
}
java
/**
* ÔÚ´ËÌîд×ÜÌåÃèÊö
*
* @param name
* ÔÚ´ËÌîд²ÎÊýnameµÄÃèÊö
* @return
* ÔÚ´ËÌîд·µ»ØÖµµÄÃèÊö
*/
public String printName(String name)
{
return "print:"+name
} ......
·Ç³£¼òµ¥,ÔÚC#ÖÐÖ»ÐèÒªÔÚÀàµÄ·½·¨µÄÉÏ·½ÇÃÈýÏÂ"/"¾Í×Ô¶¯°ïÄãÌí¼ÓÏà¹ØµÄ´úÂë,ÄãÖ»Òª°´×ÅÌîд¾Í¿ÉÒÔÁË,¶øJavaÔòÊÇÊäÈë"/**",ËüÒ²»á×Ô¶¯ÐγÉÏà¹Ø´úÂë,¾ßÌå´úÂëÈçÏÂ:
C#
/// <summary>
/// ÔÚ´ËÌîд×ÜÌåÃèÊö
///</summary>
/// <param name="name">ÕâÀïÌîд²ÎÊýnameµÄÃèÊö</param>
public string printName(string name)
{
return "print:"+name
}
java
/**
* ÔÚ´ËÌîд×ÜÌåÃèÊö
*
* @param name
* ÔÚ´ËÌîд²ÎÊýnameµÄÃèÊö
* @return
* ÔÚ´ËÌîд·µ»ØÖµµÄÃèÊö
*/
public String printName(String name)
{
return "print:"+name
} ......
Ê×ÏÈjava½Ó¿ÚºÍ³éÏóÀà´ú±íµÄ¾ÍÊdzéÏóÀàÐÍ£¬¾ÍÊÇÎÒÃÇÐèÒªÌá³ö³éÏó²ãµÄ¾ßÌåʵÏÖ£¬Èç¹ûÒªÌá¸ß³ÌÐòµÄ¸´ÓÃÂÊ£¬¿Éά»¤ÐÔ£¬¿ÉÀ©Õ¹ÐÔ£¬¾Í±ØÐëÃæÏò½Ó¿ÚºÍ³éÏó±à³Ì£¬ÕýȷʹÓÃËûÃÇ¡£ £¨1£©³éÏóÀà¿ÉÒÔÌṩʵÏÖ·½·¨£¬½Ó¿Ú²»ÄÜ
ÕâÊdzéÏóÀàµÄΨһÓŵ㣬¶øÇҷdz£ÓÐÓã¬ÀýÈ磬Ä㶨ÒåÒ»¸ö½Ó¿Ú£¬×ÓÀ಻ÐèÒªËûµÄËùÓз½·¨£¬¿ÉÊÇÄãû°ì·¨²»È¥ÊµÏÖËùÓз½·¨£¬ÒòΪÄãʵÏÖµÄÊǽӿڶø²»ÊdzéÏóÀ࣬¾ßÌå°ì·¨ºóÃæ½âÊÍ
(2)³éÏóÀàÖ»Äܼ̳ÐÒ»´Î£¬¶ø¿ÉÒÔʵÏÖ¶à¸ö½Ó¿Ú
ÕâÑù½Ó¿ÚµÄÓŵã¾Í³öÀ´ÁË£¬ÀýÈçÿ¸ö½Ó¿Ú¿ÉÒÔ´ú±íÒ»ÖÖ×î¶¥²ãµÄ³éÏ󣬿ÉÒÔÀí½âΪ´ú±íÒ»Àà¶«Î÷£¬Èç¹ûÒ»¸öÀàʵÏÖÁ˶à¸ö½Ó¿Ú£¬ÄÇÕâ¸öÀà¾ÍÓÐÁ˶àÖÖÀàÐÍ£¬¼´½Ó¿ÚÊǶ¨Òå»ìºÏÀàÐ͵ÄÀíÏ빤¾ß
×îºó£ºÓÐÒ»ÖÖÉè¼ÆÄ£Ê½£¬¾ÍÊÇ£¬Ä¬ÈÏÊÊÅäģʽ£¬Òâ˼¾ÍÊÇ˵£¬Ê×Ïȶ¨ÒåÒ»¸ö½Ó¿Ú£¬Í¨¹ý³éÏóÀàʵÏÖÕâ¸ö½Ó¿Ú£¬²¢ÊµÏÖһЩ×ÓÀ಻ÐèÒªÒ»¶¨ÊµÏֵķ½·¨£¬È»ºó£¬×ÓÀà¾Í¿ÉÒÔÑ¡ÔñÊǼ̳нӿڣ¬ÊµÏÖËùÓз½·¨£¬»¹ÊÇÖ±½Ó¼Ì³ÐÕâ¸ö³éÏóÀàʵÏÖ¾ßÌåÐèÒªµÄ·½·¨£¬µ±È»ÊµÏÖÕâ¸ö½Ó¿ÚµÄ³éÏóÀà¿ÉÒÔ²»Ö¹Ò»¸ö£¬ÎÒ±¾ÈËÈÏΪ£¬Èç¹ûÄã³éÏó³öÒ»¸ö¸¸À࣬ȻºóÈÃ×ÓÀàÖ±½Ó¼Ì³ÐÕâ¸ö¸¸ÀàÊÇÓÐÎÊÌâµÄ ......
Java JNIÊÇJava Native InterfaceµÄËõд£¬ÖÐÎÄ¿ÉÒëΪJava±¾µØµ÷Óá£Java Native Interface (JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£±¾ÎÄÏòÄúÏêϸ½éÉÜJava JNI¡£
Java »·¾³ºÍÓïÑÔ¶ÔÓÚÓ¦ÓóÌÐò¿ª·¢À´ËµÊǷdz£°²È«ºÍ¸ßЧµÄ¡£µ«ÊÇ£¬Ò»Ð©Ó¦ÓóÌÐòÈ´ÐèÒªÖ´Ðд¿ Java ³ÌÐòÎÞ·¨Íê³ÉµÄһЩÈÎÎñ£¬±ÈÈ磺
Óë¾ÉÓдúÂ뼯³É£¬±ÜÃâÖØÐ±àд¡£
ʵÏÖ¿ÉÓÃÀà¿âÖÐËùȱÉٵŦÄÜ¡£¾ÙÀýÀ´Ëµ£¬ÔÚ Java ÓïÑÔÖÐʵÏÖ ping ʱ£¬Äú¿ÉÄÜÐèÒª Internet Control Message Protocol (ICMP) ¹¦ÄÜ£¬µ«»ù±¾Àà¿â²¢Î´ÌṩËü¡£
×îºÃÓëʹÓà C/C++ ±àдµÄ´úÂ뼯³É£¬ÒÔ³ä·Ö·¢¾òÐÔÄÜ»òÆäËûÓë»·¾³Ïà¹ØµÄÏµÍ³ÌØÐÔ¡£
½â¾öÐèÒª·Ç Java ´úÂëµÄÌØÊâÇé¿ö¡£¾ÙÀýÀ´Ëµ£¬ºËÐÄÀà¿âµÄʵÏÖ¿ÉÄÜÐèÒª¿ç°üµ÷ÓûòÕßÐèÒªÈÆ¹ýÆäËû Java °²È«ÐÔ¼ì²é¡£
JNI ÔÊÐíÄúÍê³ÉÕâЩÈÎÎñ¡£ËüÃ÷È··Ö¿ªÁË Java ´úÂëÓë±¾»ú´úÂë(C/C++)µÄÖ´ÐУ¬¶¨ÒåÁËÒ»¸öÇåÎúµÄ API ÔÚÕâÁ½ÕßÖ®¼ä½øÐÐͨÐÅ¡£´ÓºÜ´ó³Ì¶ÈÉÏ˵£¬Ëü±ÜÃâÁ˱¾»ú´úÂë¶Ô JVM µÄÖ±½ÓÄÚ´æÒýÓ㬴ӶøÈ·±£±¾»ú´úÂëÖ»Ðè±àдһ´Î£¬²¢ÇÒ¿ÉÒԿ粻ͬµÄ JVM ʵÏÖ»ò°æ±¾ÔËÐС£
½èÖú JNI£¬±¾»ú´úÂë¿ÉÒÔËæÒâÓë Java ¶ÔÏó½»»¥£¬»ñÈ¡ºÍÉè¼Æ×Ö¶ÎÖµ£¬ÒÔ¼°µ÷Ó÷½·¨£¬¶ø²»»áÏñ J ......