5 07, 2007
JAVAÉùÒô¼¼Êõ(ת)
¡¡¡¡ÔÚJAVA2ƽ̨³öÏÖ֮ǰ£¬JAVAÓïÑÔÖ»ÄÜ´¦Àíµç»°ÒôÖʵÄÉùÒô£¬ÒÔµ¥ÉùµÀ8KHZµÄ²ÉÑùƵÂʴ洢Ϊ¦Ì-law AUÎļþ¡£JAVA2ƽ̨Ôö¼ÓÁ˶ÔAIFF£¬WAVÒÔ¼°ÈýÖÖMIDIÎļþÀàÐ͵ÄÖ§³Ö¡£ËùÖ§³ÖµÄÈýÖÖMIDIÎļþ¸ñʽΪMIDIÎļþÀàÐÍ0¡¢MIDIÎļþÀàÐÍ1¡¢ÒÔ¼°RMF¡£
¡¡¡¡Ó¦ÓóÌÐò½Ó¿ÚAPI1.0°æÌṩÁËÒ»¸öÒ×ÓÚʹÓõŤ¾ß¼¯£¬Ê¹³ÌÐòÔ±¿ÉÒÔ·ÃÎʵײãµÄºÏ³ÉÓëÑÝ×àÒýÇæ£¬´Ó¶øÀ©Õ¹ÁËJAVAÉùÒôµÄÓ¦Óá£ÆäÖÐÁ½¸öÖØÒªµÄÁìÓòÊÇ´´½¨Êý×Ö»¯ÒôƵÒÔ¼°ÀÖÆ÷Ö¸ÁîÊý×Ö»¯½Ó¿ÚMIDI¡£ÓÉÓÚÌṩÁË´óÁ¿µÄµ×²ãÖ§³Ö¹¦ÄÜ£¬ËùÒÔ³ÌÐòÔ±ÄÜÊäÈëÊä³öÉùÒô£¬¿ØÖÆMIDIÉ豸£¬²¢ÄܲéѯϵͳÔË×÷Çé¿ö¡£
¡¡¡¡ÉùÒôÎļþÀàÐͼò½é
¡¡¡¡Ö÷ÒªµÄÉùÒôÎļþÀàÐÍÈçÏ£º
¡¡¡¡AU - (À©Õ¹ÃûΪAU»òSND)ÊÊÓÃÓڶ̵ÄÉùÒôÎļþ£¬ÎªSolarisºÍÏÂÒ»´ú»úÆ÷µÄͨÓÃÎļþ¸ñʽ£¬Ò²ÊÇJAVAƽ̨µÄ±ê×¼µÄÒôƵ¸ñʽ¡£AUÀàÐÍÎļþʹÓõÄÈýÖÖµäÐÍÒôƵ¸ñʽΪ: 8λ¦Ì-lawÀàÐÍ£¨Í¨³£²ÉÑùƵÂÊΪ8kHz), 8λÏßÐÔÀàÐÍ£¬ÒÔ¼°16λÏßÐÔÀàÐÍ¡£
¡¡¡¡WAV - (À©Õ¹ÃûΪWAV)ÓÉ MicrosoftºÍ IBM¹²Í¬¿ª·¢,¶ÔWAVµÄÖ§³ÖÒѾ±»¼Ó½øWindows 95²¢ÇÒ±»ÑÓÉìµ½Windows 98. WAVÎļþÄÜ´æ´¢¸÷ÖÖ¸ñʽ°üÀ¨¦Ì-law,a-lawºÍ PCM (ÏßÐÔ)Êý¾Ý¡£ËûÃǼ¸ºõÄܱ»ËùÓÐÖ§³ÖÉùÒôµÄWindowsÓ¦ÓóÌÐò²¥·Å¡£
¡¡¡¡AIFF - (À©Õ¹ÃûΪAIF»òIEF)ÒôƵ»¥»»Îļþ¸ñʽÊÇΪMacintosh¼ÆËã»úºÍSilicon Graphics (SGI)¼ÆËã»úËù¹²Óõıê×¼ÒôƵÎļþ¸ñʽ¡£AIFFºÍ AIFF-C¼¸ºõÊÇÏàͬµÄ,³ýÁ˺óÕßÖ§³ÖÀýÈç¦Ì-lawºÍ IMA ADPCMÀàÐ͵ÄѹËõ¡£
¡¡¡¡MIDI - (À©Õ¹ÃûΪMID)ÀÖÆ÷Êý×Ö½Ó¿ÚMIDIÊÇΪÒôÀÖÖÆÔìÒµËùÈϿɵıê×¼£¬Ö÷ÒªÓÃÓÚ¿ØÖÆÖîÈçºÏ³ÉÆ÷ºÍÉù¿¨Ö®ÀàµÄÉ豸¡£
¡¡¡¡MIDIÎļþ²»°üº¬Êý×ÖÒôƵ²ÉÑù£¬¶øÊǰüÀ¨Ò»ÏµÁÐÖ¸ÁÕâЩָÁî¿ØÖÆ°ÑÀ´×Ô²»Í¬ÀÖÆ÷ÉϵÄÒô·ûÐòÁкϳÉÀÖÇú¡£Ò»Ð©MIDIÎļþ°üº¬¸½¼ÓÖ¸ÁîÀ´Îª¸÷ÖֺϳÉÉèÖýøÐбà³Ì¡£
¡¡¡¡´ó¶àÊýºÏ³ÉÆ÷Ö§³ÖMIDI±ê×¼£¬ËùÒÔÔÚÒ»¸öºÏ³ÉÆ÷ÉÏÖÆ×÷µÄÒôÀÖÄܹ»ÔÚÁíÒ»¸öÉϲ¥·Å¡£ ÓÐ MIDI½Ó¿ÚµÄ¼ÆËã»úÄܲÙ×Ý MIDIÊý¾ÝÒÔ²úÉúÐÂÒôÀÖ»òÒôÏìЧ¹û¡£ÀýÈ磬һ¸öÍêÕûµÄÒôÀÖ×÷Æ·¿ÉÒÔͨ¹ýÒ»¸öÈí¼þÇý¶¯µÄÃüÁîת»»³ÉȫеÄÐÎʽ¡£
¡¡¡¡JAVAÉùÒôÒýÇæÖ§³ÖÁ½ÖÖMIDIÎļþÀàÐÍ£º
¡¡¡¡MIDIÀàÐÍ0Îļþ-°üº¬½ö½öÒ»¸öÐòÁУ¬ËùÓÐÏà¹ØµÄÀÖÆ÷²¿·Ö±»°üº¬ÔÚͬһ¸öÂß¼ "´ÅµÀ"ÉÏ¡£
¡¡¡¡MIDIÀàÐÍ1Îļþ-°üº¬¶àÖØµÄ "´ÅµÀ"ʹµÃ²»Í¬µÄÀÖÆ÷±»Âß¼µØ·Ö¿ª£¬´Ó¶øÊ¹¶ÔÉùÒôµÄ²Ù×÷ºÍÖØ×é¸ü¼ÓÈÝÒס£
¡¡¡¡RMF - (À©Õ¹ÃûΪRMF)»ìºÏÒôÀÖ¸ñʽÊÇÓÉBeatnikÉè¼Æ³öÀ´µÄ»ìºÏÎļþÀàÐÍ£¬Í¨¹ý½»»¥Ê½É趨½«MIDIºÍÒôƵ²ÉÑù·â×°ÔÚÒ»Æð¡£RMFºÃ±ÈÊÇÒ»¸öËùÓÐÒôÀÖÏà¹ØÎļþµÄÈÝÆ÷¡£RMFÒ²°üº¬¶ÔÓйذæÈ¨µÄÏêϸÎļþ˵Ã÷µÄÖ§³Ö¡£RMFÎļþ¿ÉÒÔ°üº¬¶à¸öÓɲ»Í¬ÒÕÊõ¼Ò´´×÷µÄ´æ´¢ÎªMIDIÀàÐÍ»òÒôƵ²ÉÑùÀàÐ͵Ä×÷Æ·,ÿ¸ö¶¼¹ØÁª×ÅÏà¹ØµÄ°æÈ¨ÐÅÏ¢¡£
¶ÔÉùÒôÒýÇæµÄÑ¡Ôñ
¡¡¡¡ÔÚ1997Äê,SUNµÄJAVAýÌ忪·¢×éÊÔͼÕÒµ½Ò»ÖÖ·½·¨£¬ÒÔÔöÇ¿ÉùÒôµÄ´¦ÀíÄÜÁ¦²¢Îª½«À´Ìṩһ¸ö¼áʵµÄƽ̨¡£¸ù¾ÝJAVAýÌ忪·¢×é¾ÀíMichael BundschuhËù˵,
"ÎÒÃÇÏëÒª·Ç³£¸ßÖÊÁ¿µÄ²¥·ÅÒýÇæÒÔ´¦ÀíËùÓеĴӰËλ¦Ì-law¼¶Ö±µ½ CDÖÊÁ¿ÉùÒôµÄÿһ¼þ²Ù×÷¡£ ÎÒÃÇÏ£ÍûÇáËÉ¿çÔ½ËùÓÐÆ½Ì¨£¬ÖîÈçSolarisƽ̨, Windows, MacÒÔ¼°ÆäËû¡£ÎÒÃÇÒ²ÏëÒª¸ß¶È·¢Õ¹Á˵ÄÄܹ»¿çÔ½²»Í¬Æ½Ì¨µÄMIDIÄÜÁ¦¡£ÎªÉÏÊöÄ¿µÄ£¬ºÏÀíµÄÑ¡ÔñÊÇBeatnikµÄÒôƵÒýÇæ(´ÓǰÊÇHeadspace¡£)"
SUNÈ¡µÃÁËBeatnikµÄÒôƵÒýÇæÊ¹ÓÃÐí¿É£¬°ÑËüµ±×÷JAVAÉùÒôÓ¦ÓóÌÐò½Ó¿ÚAPIµÄ»ù´¡¡£
¡¡¡¡Thomas Dolby Robertson-Beatnik¼ò½é
¡¡¡¡ÔÚ90Äê´ú³õ֮ǰ£¬Thomas Dolby RobertsonµÄÖ°ÒµÍêÈ«ÔÚÒôÀÖ·½Ãæ¡£Ëû1982ÍÆ³öµÄ"ËýÓÿÆÑ§ÕÕÁÁÁËÎÒ"ÊÇÒ»²¿ÔçÆÚµÄMTV¾Þ×÷¡£Õû¸ö80Äê´ú£¬Ëû¶¼ÔÚ²»¶ÏµØ×÷ÇúºÍ¼Òô£¬Ê¹ÓÃÒ»Öַǽṹ»¯ÒôÀÖÖÆ×÷Èí¼þ¡£µ«ÊÇÔÚ 1990,ͨ¹ýÒ»´ÎΪGuggenheim²©Îï¹ÝÑÝʾÐéÄâÏÖʵµÄºÏ×÷£¬Ëû¿ªÊ¼Ë¼¿¼ÄÜ·ñ×öһЩÌá¸ßÒôÀÖÖÆ×÷ÄÜÁ¦µÄ¹¤×÷¡£
¡¡¡¡"ÎÒµ±Ê±Õý·üÔÚ C³ÌÐòÔ±µÄ¼çÉÏ£¬²¢ÇÒÎÒͻȻÈÏʶµ½Îª×ö¼Ç¼×öÁË´óÁ¿µÄ¹¤×÷£¬¿ÉÊÇûÓÐΪÑÝ×àʱµÄ½»»¥×öÈκÎÊÂÇé¡£"ÓÐÁËÕâÑùµÄÏë·¨£¬RobertsonÔÚ1992Ä꽨Á¢ÁËHeadspace£¬¹ÍÓÃÔ¹â×÷Çú×éÀ´°ïÖúʵÏÖËûµÄ¹Ûµã¡£HeadspaceÓÚ1996Äê³ÉΪ¹«Ë¾£¬ÏÖÔÚ±»³ÆÎªBeatnik¡£
¡¡¡¡JAVAÉùÒôÒôƵÒýÇæ
¡¡¡¡JAVAÉùÒôÒýÇæÎª¶àýÌå´´½¨£¬Í¬Ê±¿¼ÂÇÁËÓÎÏ·Éè¼ÆºÍ·¢²¼WEBÄÚÈÝ¡£Óñê×¼µÄ MIDIÎļþ¡¢RMFÎļþ¡¢²¢ÇÒ/»òÀ´×ÔÈκÎÔ´µÄ²ÉÑù£¬¸ÃÒýÇæ½«²¥·ÅÒôÀÖ»òÖÆÔìÒôÏìЧ¹û£¬Í¬Ê±¾¡¿ÉÄÜÉÙÓÃCPU¡£ËüÌṩÍêÈ«µÄ²¥·Å¿ØÖÆ£¬¾ßÓлìºÏÒôÏìµÄÄÜÁ¦²¢¿ÉʵʱµØ»ØÓ¦Óû§µÄÊäÈë¡£
¡¡¡¡JAVAÉùÒôÒýÇæÊÇÈí¼þ MIDIºÏ³ÉÆ÷,²ÉÑù²¥·ÅÉ豸,ÒÔ¼°16λÁ¢Ìå»ìÉùÆ÷¡£ËüÖ§³Ö»ìºÏÖ±µ½64λµÄÁ¢ÌåMIDIÉùÒôºÍÒôƵ²ÉÑù¡£ËüÖ±½ÓÖ§³ÖMIDIÀàÐÍ0ºÍÀàÐÍ1ÎļþÒÔ¼°´Ó8λÉ豸µ½16λÀÖÆ÷µÄ²¨±íºÏ³É¡£¸ÃÒýÇæÖ§³ÖËùÓÐͨÓÃµÄ MIDI¿ØÖÆÆ÷²¢ÇÒ°üº¬Ïó»ØÉù´¦Àí, LFO (¿ØÖƹýÂËÆ÷»òÁ¢ÌåÉùÉ豸)Ö®ÀàµÄÌØÐÔ£¬ÒÔ¼°ADSRÐÅ·â (²¥·ÅʱÕûÐβÉÑù)¡£
¡¡¡¡¼´Ê¹ÓÃÉÏËùÓеŦÄÜ£¬JAVAÉùÒôÒýÇæÔÚÒ»¸ö90MhzµÄ±¼ÌÚ¼ÆËã»úÉÏÒ²Õ¼Óò»³¬¹ý30£¥µÄCPUʱ¼ä¡£Ëü»¹ÄÜͨ¹ýÓÐÑ¡ÔñµØ½ûÓò»ÐèÒªµÄÌØÐÔ£¬Ê¹Æä±äµÃ¸ü¼Ó¸ßЧһЩ¡£ÁíÍ⣬Ëü·¢²¼ÁË´æ´¢ÔÚѹËõµÄRMFÒôÀÖÎļþÖеķḻµÄÄÚÈÝ¡£Thomas Dolby RobertsonµÄ"ËýÓÿÆÑ§ÕÕÁÁÁËÎÒ"£¬Ò»Ê×7·Ö21ÃëµÄ¸èÇú£¬Èç´æ´¢ÎªCDÒôÖʵÄÎļþ×ã×ãÕ¼ÓÃ70M×ֽڿռ䡣Èç¹ûÒÔRMF¸ñʽ´æ´¢Ö»Ðè´óÔ¼636 KB,ÊÇ120:1µÄ¼õÉÙ£¬Í¬Ê±Ë¿ºÁ²»¼õÒôÖÊ¡£
Ϊ¸ü¶àÓйØBeatnikµÄÐÅÏ¢£¬Çë¿´BeatnikµÄWEBÕ¾µã¡£
JAVAƽ̨ÉùÒôµÄ¼òÒªÀúÊ·
¡¡¡¡ÔÚJDK 1.0.x¼°JDK 1.1.xÏÂ, AudioClip½Ó¿ÚÌṩÏÂÁлúÄÜ£º
¡¡¡¡l AudioClip½Ó¿Ú
¡¡¡¡¡¡¡¡²¥·Å
¡¡¡¡¡¡¡¡Ñ»·
¡¡¡¡¡¡¡¡Í£Ö¹
¡¡¡¡»Ö¸´ºÍ²¥·ÅÉùÒô×î¼òµ¥µÄ·½·¨ÊÇͨ¹ýAppletÀàµÄplay()·½·¨¡£µ÷ÓÃplay()·½·¨ÓÐÈç϶þÖÖ·½Ê½:
¡¡¡¡play()-´øÓÐÒ»¸ö²ÎÊý£¬Ò»¸ö URL¶ÔÏó,×°ÔØ²¢ÑÝ×à´¢´æÔÚ URL´¦µÄÉùÒôƬ¶Ï¡£
¡¡¡¡play()-´øÓжþ¸ö²ÎÊý£¬»ù±¾ URLºÍÎļþ¼Ð·¾¶Ãû,×°ÔØ²¢ÑÝ×àÉùÒôÎļþ¡£µÚÒ»²ÎÊý¾³£ÊǶÔgetCodeBase()»ò getDocumentBase()µÄµ÷Óá£
¡¡¡¡ÏÂÁдúÂëÆ¬¶Ï¾ÙÀý˵Ã÷ÁËÖ±½Ó²¥·Å hello.auµÄ·½·¨¡£AUÎļþÓëСӦÓóÌÐòλÓÚÏàͬÎļþ¼Ð»òĿ¼¡£
play(getCodeBase(), "hello.au");
¡¡¡¡play()Ò»µ©±»µ÷ÓÃÁ¢¿Ì¿ªÊ¼»Ö¸´ºÍ²¥·ÅÉùÒô¡£Èç¹ûÉùÒôÎļþ²»Äܱ»²éÕÒ,½«²»»áÓгö´íÐÅÏ¢,½ö½öÊdzÁĬ¡£
¡¡¡¡Æô¶¯ºÍÍ£Ö¹ÉùÒôÎļþ,»òÑ»·²¥·Å,Äã±ØÐëÓà appletµÄ getAudioClip·½·¨°ÑËü×°ÔØ½øÈë AudioClip¶ÔÏó£¬ÀàËÆÉÏÃæplay()·½·¨µÄ²ÎÊý£¬getAudioClip·½·¨ÒªÓÃÒ»¸ö»òÁ½¸ö²ÎÊý,µ±×÷²¥·ÅµÄָʾ¡£ µÚÒ»¸ö»òΨһµÄÒ»¸ö²ÎÊýÊÇ URL²ÎÊý£¬ÓÃÀ´Ö¸Ê¾ÉùÒôÎļþµÄλÖ㬵ڶþ²ÎÊýÊÇÎļþ¼Ð·¾¶Ö¸Õë¡£
¡¡¡¡ÏÂÁдúÂëÐоÙÀý˵Ã÷¼ÓÔØÉùÒôÎļþ½øÈë¼ôÌù¶ÔÏó:
AudioClip co = getAudioClip(getCodeBase(), "horns.wav");
¡¡¡¡getAudioClip()·½·¨½ö½öÄܱ»appletÄÚµ÷Óá£Ëæ×ÅJAVA2µÄÒýÈ룬ӦÓóÌÐòÒ²ÄÜÓÃAppletÀàµÄnewAudioClip·½·¨×°ÈëÉùÒôÎļþ¡£Ç°Ò»Àý×Ó¿ÉÒÔ¸ÄдÈçÏÂÒÔÓÃÓÚJavaÓ¦ÓóÌÐò:
AudioClip co = newAudioClip("horns.wav");
¡¡¡¡ÔÚÄãÒÑ´´½¨ AudioClip¶ÔÏóÖ®ºó,ÄãÄÜÓøöÔÏóµ÷ÓÃplay()¡¢loop()ÒÔ¼°stop()·½·¨¡£Èç¹û getAudioClip»ò newAudioClip·½·¨²»ÄÜÕÒµ½Ö¸¶¨µÄÉùÒôÎļþ, AudioClip¶ÔÏóµÄÖµ½«Êǿյġ£ÊÔ×Ų¥·Å¿Õ¶ÔÏó»áµ¼Ö³ö´í£¬ËùÒÔ±ê×¼µÄ¹ý³ÌÊ×ÏÈÊǶԸÃÌõ¼þ½øÐмì²â¡£
½ÓÏÂÀ´ÊÇÒ»¸öÍêÕûµÄ³ÌÐòÉè¼ÆÊ¾Àý£¬¸Ã³ÌÐò½«²úÉúÒ»¸öapplet£¬µ±Êó±êÔÚ¸ÃСӦÓóÌÐòapplet·¶Î§ÄÚ°´ÏÂʱ»á²¥·Å flute+hrn+mrmba.auÒôÀÖÑù±¾¡£´ËAUʾÀýÎļþÓëappletÔÚÏàͬĿ¼»òÎļþ¼Ðϵġ£
import java.applet.*;
import java.awt.event.*;
public class PlayAudio extends Applet
implements MouseListener {
AudioClip audio;
public void init() {
audio = getAudioClip(getDocumentBase(),
"flute+hrn+mrmba.au");
addMouseListener(this);
}
public void mousePressed(MouseEvent evt) {
if (audio != null) audio.play();
}
public void mouseEntered (MouseEvent me) {
}
public void mouseExited (MouseEvent me) {
}
public void mouseClicked (MouseEvent me) {
}
public void mouseReleased(MouseEvent me) {
}
}
¡¡¡¡×¢Ò⣺ ÔÚÐí¶àJAVA2¼¼ÊõÊé¼®ÖУ¬mouseDown()·½·¨È·ÊµÊÇJAVA 1.0ʼþÄ£Ð͵ÄÒ»²¿·Ö¡£Ê¹Óø÷½·¨»áÓÐÒ»¶¨µÄΣÏÕ£¬ÒòΪ¸Ã·½·¨ÔÚ½«À´¿ÉÄܲ»»á±»Ö§³Ö¡£ÔÚJAVA2ƽ̨Ͻ«MouseListenerÓëmousePressed½áºÏʹÓÃÊÇÓÅÏȵÄÑ¡Ôñ¡£
API 1.0-ÖʵķÉÔ¾
¡¡¡¡×¢Ò⣺ÏÂÁб¸×¢ÊÇÒÔJAVA APIµÄÔçÆÚ°æ±¾0.86Ϊ»ù´¡µÄ¡£ËäȻĿǰÕâÀïÌÖÂ۵Ĵó¶àÊý¶ÔÏóºÍ¸ÅÄîÓë¹ýÈ¥±£³ÖÒ»Ö£¬µ«ÓÉÓÚ¸ÃAPI°æ±¾ÒѾÖÕÖ¹£¬³öÏÖijЩ¸Ä±äµÄ¿ÉÄÜÊÇ´æÔڵġ£
¡¡¡¡JAVAÉùÒô 1.0 APIΪJAVAƽ̨¶¨ÒåÁËÒ»ÕûÌ׵Ļù±¾µÄµ×²ãÒôƵ´¦Àí¹¦ÄÜ¡£ËüÌṩÈçϽӿÚΪ:
¡¡¡¡ÒôƵ²¶»ñºÍ²¥·Å
¡¡¡¡IDIºÏ³É¼°ÐòÁл¯
¡¡¡¡ÕâÁ½¸öÖ÷ÒªµÄ¹¦ÄÜÄ£¿éÔÚ¸÷×ԵijÌÐò°üÖÐÌṩ¡£
javax.media.sound.sampled-¸Ã³ÌÐò°üÃ÷È·µØËµÃ÷Á˲¶»ñ¡¢»ìºÏÒÔ¼°»Ø²¥Êý×Ö²ÉÑùÒôƵµÄ½çÃæ¡£
javax.media.sound.MIDI-¸Ã³ÌÐò°üÌṩMIDIºÏ³É¡¢ÐòÁл¯ÒÔ¼°Ê¼þ´«Ë͵ĽçÃæ¡£
¡¡¡¡JAVA 1.0 API¾ß±¸ÈçÏÂÌØÐÔ:
¡¡¡¡Êý×ÖÒôƵ
¡¡Æµ²¶»ñ£´ÓÊäÈëÔ´ÀýÈçÂó¿Ë·ç½øÐÐÊý¾Ý²¶»ñ¡£ ¡¡
¡¡ÒôºÍÖØ²¥£½«¸÷ÖÖÊäÈëÔ´µÄÉùÒô»ìºÏ²¢Öز¥¡£ ¡¡
¡¡ÖÆÓë±àÂ룵÷ÕûÔöÒæ¡¢¶¨Î»¡¢»ØÒô´¦ÀíµÈµÈ£¬ÒÔ¼°½øÐиñʽת»»¡£
¡¡Ì¬¼°ÆäÌáʾ£µ±Öز¥¿ªÊ¼ºÍ½áÊø¡¢É豸´ò¿ª»ò¹Ø±ÕÒÔ¼°ÆäËûÏà¹ØÊ¼þ·¢Éúʱ½ÓÊÕʼþ¡£
¡¡¡¡¶ÔMIDIµÄÖ§³Ö
¡¡¡¡
¡¡MIDIÏûÏ¢£½»»»ÏûÏ¢£¨´ò¿ªÒô·û£¬¹Ø±ÕÒô·û£¬ÖîÈç´ËÀࣩ ¡¡¡¡
¡¡ºÏ³É£´ÓMIDIÊý¾Ý×°ÈëÀÖÆ÷²¢²úÉúÉùÒô¡£ ¡¡¡¡
¡¡ÐòÁл¯£×°ÈëÒ»¸öMIDIÐòÁУ¬¿ªÊ¼ºÍÍ£Ö¹²¥·Å£¬ÒÔ¼°µ÷Õû½Ú×à¡£<£¯li>
¡¡¡¡¹¤¾ß
¡¡¡¡
¡¡¼þÊäÈëÊä³ö£¶ÁдͨÓÃÒôƵÎļþÀýÈçWAV£¬AIFF¼°MIDI ¡¡
¡¡Öã²éѯϵͳÀ´»ñµÃ×é¼þºÍÉ豸µÄÐÅÏ¢£»°²×°»òÈ¡Ïû±àÂë¡¢Îļþ·ÖÎöÆ÷ºÍÉ豸µÈ¡£
Êý×Ö»¯ÒôƵ
¡¡¡¡Í¨µÀ
¡¡¡¡Kara Kytle, JAVAÉùÒô APIÖ÷¹Ü¹¤³ÌʦºÍϵͳÉè¼ÆÊ¦Ëµ:"ChannelÊÇÒôƵ¹ÜµÀÖеĻù±¾¹¦Äܲ¿¼þ"¡£ÊµÏÖChannel½çÃæµÄÀà´ú±íןÃ"¹ÜµÀ"µÄÒ»¸öÔªËØ£¬ÀýÈçÓ²¼þÉ豸£¬Ò»¸öÉùÒôºÏ³ÉÆ÷£¬»òÕßÊÇÒ»¸öµ¥ÒôƵÁ÷¡£
¡¡¡¡InputChannelºÍ OutputChannel¼Ì³ÐÁËChannel,·Ö±ðÓÃÓÚ¶ÁÈë±»²¶»ñµÄÊý¾ÝºÍΪ²¥·ÅдÊý¾Ý¡£×Ó½çÃæClipÖ§³Ö¶ÔԤװÈëµÄÒôƵÊý¾ÝÑ»·²¥·ÅºÍÖØÐ¶¨Î»¡£Device±íʾÈκÎÓÃÓÚ²¶»ñ¡¢²¥·Å»ò»ìºÍÒôƵµÄÓ²¼þ»òÈí¼þÉ豸¡£
¡¡¡¡¸Ã½çÃæµÄ²ã´Î½á¹¹ÈçÏÂͼËùʾ¡£²Î¿¼°üjavax.media.sound.sampled¡£
¡¡¡¡
¡¡¡¡µ±Ò»¸öChannel´ò¿ªÊ±,ËüΪ×Ô¼º±£ÁôÁËϵͳ×ÊÔ´ ,²¢ÇÒµ±Ëü½áÊøÊ±,ÕâЩ×ÊÔ´±»ÊͷŸøÆäËûµÄÓ¦ÓóÌÐòºÍ¶ÔÏóʹÓá£ÓÃisOpen()·½·¨¿ÉÒÔ²éѯChannelÊÇ´ò¿ª»¹Êǹرյġ£Êý¾ÝµÄ´¦Àíͨ³£ÓÉ×Ó½çÃæ·½·¨±ÈÈçread()·½·¨À´Æô¶¯£¬Õⲿ·ÖÔÚInputChannel½çÃæËµÃ÷ÃèÊö (Çë¿´JAVAÉùÒô APIµÄ˵Ã÷Êé)¡£
¡¡¡¡´¦Àí·½·¨Ê¹Channel´¦ÓÚ¸ºÔðÊäÈë»òÊä³öÒôƵÊý¾ÝµÄ״̬¡£ÓÃisActive·½·¨¿ÉÒÔʶ±ðChannelÊÇ·ñ´¦ÓÚÕâÖÖ״̬¡£Í¨¹ýµ÷ÓÃpause()·½·¨¿ÉÒÔʹͨµÀ´¦ÓÚÔÝͣ״̬£¬´Ë״̬¿ÉÒÔͨ¹ýisPaused()·½·¨Åб𡣵±Í¨µÀ±»ÔÝͣʱ,ÓÐÈýÖÖÑ¡Ôñ£º±£ÁôÊý¾Ý(ȱʡ),ÓÃflush()·½·¨¶ªÆúÄÚ²¿»º³åÆ÷ÖеÄÊý¾Ý£¬»òÓÃdrain()·½·¨Ê¹ÄÚ²¿»º´æÖеÄÊý¾Ý±»Á¢¼´´¦Àí¡£
¡¡¡¡¶ÔÏóÊÂÏÈ¿ÉÒÔ×¢²á£¬ÕâÑùÿµ±Í¨µÀ״̬¸Ä±äʱËü¶¼¿ÉÒÔÊÕµ½Í¨¸æÐÅÏ¢¡£¸Ã×¢²á¶ÔÏó±ØÐëʵÏÖChannel.Listener½çÃæ£¬¸Ã½çÃæ½ö°üº¬Ò»¸ö·½·¨update()¡£µ±Channel´ò¿ª¡¢½áÊø¡¢Æô¶¯¡¢¼°Í£Ö¹Ê±£¬¸Ã·½·¨¶¼½«±»µ÷Óᣵ±Channel¿ªÊ¼»òÍ£Ö¹»î¶¯ÒÔ¼°¿ªÊ¼»òÍ£Ö¹²¶»ñÊý¾Ýʱ£¬»á²úÉústart»òstopʼþ¡£
¡¡¡¡ÊäÈëͨµÀ
¡¡¡¡InputChannelÊDZ»²¶»ñµÄÒôƵÊý¾ÝµÄÔ´Í·¡£¸Ã½çÃæÌṩÁË·½·¨£¬¿É´Ó InputChannel»º³åÆ÷¶ÁÈ¡±»²¶»ñµÄÊý¾Ý£¬²¢Åжϵ±Ç°¿É¶ÁµÄÊý¾ÝÁ¿¡£Èç¹ûÓ¦ÓóÌÐòÊÔͼ¶Á¹ý¶àµÄÊý¾Ý,¸Ã¶Á·½·¨×èÈû£¬Ö±µ½ËùÐè¶ÁÈ¡Êý¾Ý´ïµ½ÎªÖ¹¡£
¡¡¡¡Êä³öͨµÀ
¡¡¡¡OutputChannel½ÓÊÕÓÃÓÚ²¥·ÅµÄÒôƵÊý¾Ý¡£Õâ½Ó¿ÚÌṩ·½·¨£¬½«Òª²¥·ÅµÄÊý¾ÝдÈëOutputChannelµÄ»º³åÇø£¬²¢ÄÜÅжϸÃͨµÀ²»¼ä¶Ï¿É½ÓÊÕµÄÊý¾ÝÁ¿¡£Èç¹ûÓ¦ÓóÌÐòÊÔͼд¹ýÁ¿µÄÊý¾Ý£¬¸Ã¶Á·½·¨×èÈû£¬Ö±µ½ÓÐ×ã¹»Êý¾ÝΪֹ¡£
¡¡¡¡¼ôÌù
¡¡¡¡Clip½Ó¿Ú±íʾһ¸öÌØÊâµÄͨµÀ£¬Ëü¿ÉÒÔÔÚ²¥·Å֮ǰÏÈ×°ÈëÒôƵÊý¾Ý¡£ÓÉÓÚÊý¾ÝÊÇԤװÈëµÄ£¬¶ø²»ÊÇÁ÷ÈëµÄ£¬ËùÒÔclip¿ÉÒÔÖ§³Ö³ÖÐø²éѯ¡¢Ñ»·²¥·Å¡¢ÒÔ¼°ÖØÐ¶¨Î»²¥·Å¡£
É豸
¡¡¡¡Device½çÃæÎª±íʾÒôƵÉ豸µÄÀàÌṩ·½·¨¡£ÒôƵÉ豸¿ÉÒÔÊǹ²ÏíµÄÒ²¿ÉÊǶÀÕ¼µÄϵͳ×ÊÔ´£¬Ëü¿ÉÒÔÊÇ»ùÓÚÓ²¼þµÄ£¬Ò²¿É»ùÓÚÈí¼þµÄ£¬»¹¿ÉÊÇͬʱ»ùÓÚÁ½Õߵġ£ËüÄܱ»Öظ´µØ´ò¿ªºÍ¹Ø±Õ£¬ËüÄÜʱ³£ËµÃ÷ËüµÄÄÚÔÚÌØÐÔ¼°Ö§³ÖµÄÒôƵ¸ñʽ¡£Í¬Ê±£¬ËüÒ²ÌṩÐÅÏ¢¶ÔÏóÀ´ÃèÊöÉ豸¡£
¡¡¡¡JAVAÉùÒô API½øÒ»²½ÃèÊöÈýÖÖÉ豸×Ó½çÃæ:
InputDevice
InputDevice½çÃæÌṩһ¸ö·½·¨getInputChannelÀ´»ñµÃÒ»¸öInputChannel¶ÔÏ󣬴ÓÖв¶»ñ¿É¶ÁµÄÒôƵÊý¾Ý¡£
OutputDevice
OutputDevice½çÃæÌṩһ¸ö·½·¨getOutputChannelÀ´»ñµÃÒ»¸öOutputChannel¶ÔÏó£¬ÒôƵÊý¾Ý¿ÉÒÔдÈë¸ÃÊä³öͨµÀ£¬²¢Óè²¥·Å¡£
Mixer
MixerÖ§³Ö¶à¸öInputChannelºÍ/»òClip¡£ ÁíÍâ,ËüÌṩÁ˲éѯ·½·¨£¬´ÓÖпɵõ½ËüËùÖ§³ÖµÄͨµÀÊýÁ¿£¬ËüÒ²ÌṩÁËÖ§³Öͬ²½ÔÝÍ£ºÍ»½ÐѶà¸öͨµÀ²¥·ÅµÄ·½·¨¡£
¡¡¡¡¿Ø¼þ
¡¡¡¡Í¨µÀºÍÒôƵ¶Ë¿Ú (±ÈÈçÑïÉùÆ÷ºÍÂó¿Ë·ç)Ò»°ãÄÜÖ§³ÖÒ»×é¿Ø¼þ±ÈÈçÔöÒæºÍ¶¨Î»¡£Í¨¹ý½«ËüµÄÀà×÷Ϊ²ÎÊý´«¸øgetControl()·½·¨£¬JAVAÉùÒô APIµÄͨµÀ¶ÔÏóºÍ¶Ë¿Ú¶ÔÏó¿ÉÒÔ»ñµÃÒ»¸öÌØ±ðµÄ¿Ø¼þ¡£
¡¡¡¡±àÂëÆ÷
¡¡¡¡Codecs¿ÉÒÔ¶ÔÒôƵÊý¾Ý±àÂëºÍ½âÂ룬ÔÊÐíÔÚ²»Í¬¸ñʽºÍ±àÂëÖ®¼äת»»¡£JAVAÉùÒô APIͨ¹ýAudioSystemÀàÖеķ½·¨ÎªÕâЩת»»ÌṩÁ˸߼¶½Ó¿Ú¡£Èç¹û¸øÁËÒ»¸öÌØÊâµÄÒôƵÁ÷£¬Ó¦ÓóÌÐò»á²éѯÒôƵϵͳÀ´ÕÒµ½ÏàÓ¦µÄת»»£¬´Ó¶øµÃµ½Ö¸¶¨¸ñʽµÄÒôƵÁ÷¡£
¡¡¡¡ÎļþºÍÁ÷
¡¡¡¡ÒôƵÁ÷ÊÇÓëÒôƵÊý¾Ý¸ñʽºÍÊý¾Ý³¤¶ÈÏà¹ØµÄÊäÈëÁ÷£¬ÎļþÁ÷ÊÇÓëÎļþÀàÐͺÍÊý¾Ý³¤¶ÈÏà¹ØµÄÊäÈëÁ÷¡£JAVAÉùÒô APIÔÚAudioSystemÀàÖÐΪÒôƵÎļþºÍÒôƵÁ÷Ö®¼äµÄת»»ÌṩÁ˽ӿڡ£
¡¡¡¡²éѯºÍ·ÃÎʰ²×°×é¼þ
¡¡¡¡AudioSystemÀà³äµ±µ½²ÉÑùÒôƵϵͳ×ÊÔ´Èë¿ÚµÄ½ÇÉ«¡£¸ÃÀàÔÊÐí³ÌÐòÔ±²éѯºÍ·ÃÎÊÊäÈëÉ豸¡¢Êä³öÉ豸ÒÔ¼°°²×°ºÃµÄ»ìÒôÉ豸¡£ÁíÍ⣬AudioSystem°üº¬Ðí¶àÔÚ²»Í¬ÒôƵÊý¾Ý¸ñʽ¼äת»»µÄ·½·¨¡£ËüÒ²ÌṩһЩ·½·¨£¬Ê¹µÃÔÚ²»ÐèÒª¶ÔÉ豸ֱ½Ó²Ù×÷µÄÇé¿öÏ£¬Ö±½Ó»ñµÃÊäÈëͨµÀ»òÊä³öͨµÀ¡£
ϵͳÅäÖÃ-·þÎñÌṩÕß½çÃæ(SPI)
¡¡¡¡¶Ô²ÉÑùÒôƵϵͳµÄÅäÖÃÊÇÓÉjavax.media.sound.sampled.spi°üÀ´Íê³ÉµÄ¡£Í¨¹ý AudioConfigÀàµÄ·½·¨£¬¿ÉÒÔÔÚϵͳÖа²×°»òÐ¶ÔØÉ豸£¬²¢ÇÒ¿ÉÒÔ½¨Á¢Æðȱʡ״̬¡£·þÎñÌṩÕß¿ÉÒÔÏ£ÍûÌṩºÍ°²×°ËûÃÇ×Ô¼ºµÄ±àÂëÆ÷ºÍ·ÖÎöÆ÷¡£Õâ¸ö°üÌṩÁËÍê³ÉÕâÖÖ¹¦ÄܵĻúÖÆ¡£
¡¡¡¡MIDI
¡¡¡¡javax.media.sound.MIDI³ÌÐò°üÃèÊöÁË MIDIʼþ´«ËÍ¡¢ºÏ³É¡¢ÒÔ¼°ÐòÁл¯µÄ½çÃæ¡£ÏÂÃæ½éÉܸóÌÐò°üÖÐËùÓõ½µÄÖ÷Òª¸ÅÄî¡£
¡¡¡¡´«ËÍ
¡¡¡¡»ù±¾µÄMIDI´«ËͽçÃæÊÇ MidiDevice¡£ËùÓÐÉ豸ΪÁгöÆäËùÖ§³ÖµÄģʽºÍ²éѯµ±Ç°Ä£Ê½ÌṩÁË·½·¨¡£É豸֧³Ö¼àÌýÆ÷£¬¿ÉÒÔ¼àÌý¸÷ÖÖʼþÈç´ò¿ªºÍ¹Ø±Õʼþ£¬²¢ÇÒÓÐÒ»¸öÐÅÏ¢¶ÔÏóÀ´ÃèÊöÉ豸״̬¡£
¡¡¡¡Í¨³£,É豸ÊÇMIDIʼþµÄ´«ËÍÆ÷»ò½ÓÊÕÆ÷Ö®Ò»¡£´«ËÍÆ÷½çÃæÌṩÁËһЩ·½·¨À´ÉèÖúͲéѯ½ÓÊÕÆ÷£¬¸Ã½ÓÊÕÆ÷½ÓÊÕÓɸô«ËÍÆ÷·¢ËͳöµÄMIDIʼþ¡£½ÓÊÕÆ÷Ϊ½ÓÊÕMIDIʼþÌṩ·½·¨¡£
¡¡¡¡»ù±¾µÄ MidiEvent¶ÔÏóÊÇͨ¹ýÒ»¸öÏûϢ˵Ã÷ʼþÀàÐÍ¡¢Êý¾Ý³¤¶È¡¢ÒÔ¼°×´Ì¬¡£ËüÒ²ÎªÉæ¼°MIDI¼ÆÊ±µÄÉ豸ÀýÈçÒôÐòÆ÷Ìṩ׼ȷµÄ¼ÆÊ±Ðźš£
ºÏ³ÉÆ÷
¡¡¡¡ºÏ³ÉÆ÷½çÃæÊÇÒ»ÖÖÉú³ÉÉùÒôµÄÌØÊâÀàÐ͵ĽÓÊÕÆ÷¡£ËüÒ²ÌṩһЩ·½·¨À´¹ÜÀíÉùÒô¿âºÍÀÖÆ÷¡£ÁíÍâ,ºÏ³ÉÆ÷¿ÉÒÔÖ§³ÖÒ»×éÈ«¾ÖµÄ·Ç-MIDI¿Ø¼þÀýÈçÔöÒæºÍ¶¨Î»¡£ËüÒ²Ìṩ¶ÔÒ»×éMIDIͨµÀµÄ·ÃÎÊ£¬Êµ¼ÊÉÏ£¬ÉùÒô¾ÍÊÇͨ¹ýÕâЩͨµÀ²úÉúµÄ¡£
¡¡¡¡MidiChannel½çÃæÌṩһ×é·½·¨À´±í´ï¹«ÓõÄMIDIÉùÒôÏûÏ¢ÀýÈç noteON, noteOffÒÔ¼°controlChange¡£»¹Ö§³Ö¶Ôµ±Ç°Í¨µÀ״̬µÄ²éѯ¡£
¡¡¡¡ÐòÁл¯
¡¡¡¡Sequencer½çÃæ¼Ì³ÐÁËMidiDevice,ËüÌṩÁËÍê³É»ù±¾MIDIÐòÁл¯²Ù×÷µÄ·½·¨¡£ÒôÐòÆ÷¿ÉÒÔ×°ÔØºÍ²¥·ÅÒ»¸öÐòÁУ¬²éѯºÍÉèÖýÚ×࣬²¢ÇÒ¿ØÖÆÖ÷´Óͬ²½·½Ê½¡£Ò»¸öÓ¦ÓóÌÐò»¹¿ÉÒÔͨ¹ý×¢²áʹµÃÒôÐòÆ÷ÔÚ´¦ÀíÉ豸µ¥ÔªºÍ¿ØÖÆÆ÷ʼþʱ֪ͨ×Ô¼º¡£
¡¡¡¡ÎļþºÍÐòÁл¯
¡¡¡¡ÐòÁл¯¶ÔÏó´ú±íÒ»¸öÀ´×ÔÒ»¸ö»ò¶à¸ö´ÅµÀµÄMIDIÐòÁÐÒÔ¼°Ïà¹ØµÄ¼ÆÊ±ÐÅÏ¢¡£Ò»¸ö´ÅµÀ¶ÔÏó°üº¬Ò»ÏµÁмÓÉÏʱ¼ä±ê¼ÇµÄMIDIʼþ¡£
¡¡¡¡JAVAÉùÒô APIÔÚ MidiSystemÀàÖÐΪÔÚMIDIÎļþºÍÐòÁл¯¶ÔÏóÖ®¼äת»»ÌṩÁ˸߼¶µÄ½Ó¿Ú¡£
¡¡¡¡²éѯºÍ·ÃÎÊÒѾ°²×°Á˵Ä×é¼þ
¡¡¡¡MidiSystemÀà³äµ±MIDIÒôÀÖϵͳÈë¿ÚµÄ½ÇÉ«¡£ËüÌṩÏà¹ØÉ豸µÄÐÅÏ¢²¢¶ÔÖ®½øÐзÃÎÊ£¬ÕâЩÉ豸°üÀ¨´«ËÍÆ÷,½ÓÊÕÆ÷,ºÏ³ÉÆ÷,ÒÔ¼°ÒôÐòÆ÷¡£ËüÒ²ÌṩÁ˶ÔSoundBank¶ÔÏóµÄ·ÃÎÊ¡£
¡¡¡¡ÏµÍ³ÅäÖÃ-·þÎñÌṩÕß½Ó¿Ú(SPI)
¡¡¡¡MIDIϵͳµÄÅäÖÃÓÉjavax.media.sound.midi.spi°üÀ´Íê³ÉµÄ¡£Í¨¹ýMidiConfigÀàµÄ·½·¨£¬É豸¿ÉÒÔ°²×°µ½ÏµÍ³Öлò´ÓÖÐÐ¶ÔØ£¬²¢ÇÒ¿ÉÒÔ½¨Á¢Æðȱʡ״̬¡£·þÎñÌṩÕß¿ÉÒÔÏ£ÍûÌṩºÍ°²×°ËûÃÇ×Ô¼ºµÄÎļþºÍÉùÒô¿â·ÖÎöÆ÷¡£¸ÃSPI³ÌÐò°üÖаüÀ¨ÁËÍê³ÉÕâÖÖ¹¦ÄܵĻúÖÆ¡£
¡¡¡¡ÏÖÔÚÈÃÎÒÃÇ¿´¿´ÄÜÓÃÕâЩÀàºÍ·½·¨×öʲô¡£Çë×Ðϸ¼ì²éһϡ£
¡¡¡¡ToySynthÓ¦ÓóÌÐò
¡¡¡¡
¡¡¡¡ToySynthÓ¦ÓóÌÐòÊÔÑéÁËÔçÆÚ¶ÔJAVAÉùÒô API´æÈ¡µÄ·½Ê½£¬Ö÷ÒªÊÇͨ¹ýÌṩһϵÁÐÉ豸ÉèÖ㬰üÀ¨MIDIͨµÀÑ¡Ôñ¡¢ÒôÁ¿¿ØÖÆ¡¢Á¢ÌåÉù¶¨Î»¡¢»ØÉù´¦Àí¡¢ÒÔ¼°ÆäËûÑ¡Ïͨ¹ýÇû÷¼üÅ̾ͿÉÒÔÑÝ×àʹÓÃÖ¸¶¨É豸µÄÀÖÇú£¬¶øÕâЩÉ豸ÓÖ¶¼ÊÇͨ¹ýJAVAÉùÒôÒýÇæÀ´ÊµÏֵġ£
¡¡¡¡ÍêÕûµÄToySynth.java´úÂëÑù±¾¡£
¡¡¡¡ÏÂÔØJAVAÉùÒô APIµÄͬʱ¿ÉÒԵõ½Ê¾·¶Ó¦ÓóÌÐò¼°ÆäÔ´´úÂë¡£
JAVAÉùÒô APIµÄÊг¡Ä¿±ê
¡¡¡¡JAVAÉùÒô APIΪ¸÷ÖÖ¸÷ÑùµÄÓ¦ÓóÌÐòÌṩÁËÉùÒôÖ§³Ö¡£ÏÂÃæÁоÙһЩ¿ÉÄܵÄÓ¦Óá£
¡¡¡¡Í¨ÐÅ¿ò¼Ü
¡¡¡¡Í¨¹ý¼ÆËã»úÕÙ¿ªÔ¶³Ì»áÒé
¡¡¡¡ÔÚ¼ÆËã»úÉÏʵÏֵ绰¹¦ÄÜ
¡¡¡¡ÄÚÈÝ·¢²¼ÏµÍ³
¡¡¡¡ÒôÀÖ
¡¡¡¡ÐÅÏ¢Á÷
¡¡¡¡Ã½Ìå´«²¥
¡¡¡¡½»»¥Ê½Ó¦ÓóÌÐò
¡¡¡¡ÓÎÏ·
¡¡¡¡WEBÕ¾µã
¡¡¡¡²úÉú¶¯Ì¬ÄÚÈÝ
¡¡¡¡¹¤¾ß¼¯
¡¡¡¡ÄÚÈݲúÉú
¡¡¡¡¸÷ÖÖ¹¤¾ß
¡¡¡¡ÔÚ´Ë»ù´¡ÉÏÎÒÃÇÄÜ×öʲô£¿
¡¡¡¡JAVA 2ͨ¹ý AudioClip½çÃæÀ´·ÃÎÊJAVAÉùÒôÒôƵÒýÇæ¡£Ëæ×Å1.0 APIµÄ·¢²¼,ÎÒÃÇËùÔø¾Ì½Ë÷µÄÓ¦ÓÃÁìÓò£¬¾Í½«Ìṩ¸ø¸÷µØµÄ¿ª·¢ÈËԱʹÓá£
¡¡¡¡"ÏÖÔÚ,ÎÒÃÇͨ¹ýÔÚJAVA2ƽ̨ÖмÓÈëÕæÊµÉùÒôµÄÖ§³Ö£¬Æô¶¯Á˼ÆËã»ú×ÀÃæ¶àýÌåÊг¡¡£ÒÔºó,ÎÒÃǽ«¿´¼ûÎÒÃǵÄJAVAÉùÒôAPI¼¼Êõ¹ã·ºÓ¦ÓÃÓÚרҵÈËÔ±¡¢ÆÕͨÓû§ÒÔ¼°¹ú¼Ê»¥Á¬ÍøÉϵÄÒôƵӦÓÃ", Michael Bundschuh˵¡£
¡¡¡¡µçÓ°ºÍ¼Òô´ø¹«Ë¾Í¨¹ýʹÓÃJAVAÉùÒô API¼¼Êõ¿ÉÒÔ»ñµÃרҵÖÊÁ¿ÒôƵЧ¹û¡£ÔÚJAVAÉùÒôÒýÇæÖÐʵÏÖÖ§³Ö24λÒôƵºÍ¶àͨµÀÅäÖý«¹ÄÀø×¨ÒµÈËÔ±¿ª·¢³ö¸ß¼¶µÄÉùÒô±à¼ºÍ²¥·ÅÓ¦ÓóÌÐò¡£
¸ù¾Ý Kara KytleËù˵£¬¶Ô¸ü¶àµÄÒôƵÊý¾ÝÀàÐÍÀýÈçMP3µÄÖ§³ÖÒѾ±»Ìáµ½ÒéÊÂÈճ̡£"ÁíÒ»¸öÒé³ÌÊÇ´ÓÍⲿÉ豸¶ÔMIDIÊý¾Ý½øÐв¶»ñ¡£Õ⽫ºÜ¿ìʵÏÖ¡£"Ëý˵¡£
¡¡¡¡"JAVAÉùÒô API¼¼ÊõÒѾ¿ÉÒԺܺõØÊÊÓÃÓÚͨ¹ýWEBµÄÒôƵ²¥·Å¡£"Bundschuh˵¡£"µ«ÊÇÎÒÃÇ×ÜÊǸú×Ù×îеļ¼Êõ£¬²¢ÇÒ¿ª·¢ÏóMP3ÕâÑùµÄ¼¼Êõ£¬Í¬Ê±»¹Òª±£»¤ÒôÀÖÎļþµÄ°²È«´«ËÍ¡£ÎÒÃǼƻ®ÔÚJAVAÉùÒô API½ñºóµÄ°æ±¾ÖÐÌṩ¶ÔÉÏÊö¼¼ÊõµÄÖ§³Ö"¡£
¡¡¡¡Ëæ×Å×î½üÊг¡µÄ·¢Õ¹£¬Ïó²¥·Å»ùÓÚWEBÒôÀÖÉϵľºÕù²ßÂÔÒ»Ñù£¬´ó¼Ò¶¼ÒѾ°Ñ·¢Õ¹Êý×Ö»¯ÉùÒô·ÅÔÚÖÐÐĵÄλÖá£ÐµÄýÌå¼¼Êõ²»¶ÏÓ¿ÏÖ£¬ÉùÒô½«°çÑݺËÐĵĽÇÉ«¡£JAVAÉùÒô 1.0 API½«ÊÊʱµØ¼ÓÈ뵽еĹؼüÓ¦ÓóÌÐò¿ª·¢ÐÐÁÐÖÐÀ´¡£
¡¡¡¡ÏÖ¿ÉÒԵõ½ToySynth.java³ÌÐò´úÂë
¡¡¡¡¸Ã³ÌÐòͨ¹ýͼÐÎÐÎÏ󵨱íʾ³öÒ»¸öºÏ³ÉÆ÷µÄÑù×Ó£¬Í¨¹ýÊó±êÈ¥°´ºÏ³ÉÆ÷ÉϵļüÀ´ÑÝ×àÀÖÇú¡£Äã¿ÉÒÔͨ¹ýÉùÒôÉèÖÃÒÔ¼°ÆäËûÑ¡ÏîÈ¥¸Ä±äÉùÒôµÄ»ùµ÷¡£ºÃºÃÍæ°É¡£
×îлظ´
·¢±íÆÀÂÛ