亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA聲音技術

2019-11-18 13:27:52
字體:
來源:轉載
供稿:網友

  聲音可以創造意境,觸發遐想,當與虛擬圖像相結合時,更加可以讓整個世界布滿幻覺。聲音是多媒體技術的基礎。這就是Sun公司的java媒體技術開發小組忙于預備Java Sound 1.0 API并將其包含于下一版本的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()一旦被調用馬上開始恢復和播放聲音。假如聲音文件不能被查找,將不會有出錯信息,僅僅是沉默。
  啟動和停止聲音文件,或循環播放,你必須用 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版本已經終止,出現某些改變的可能是存在的。
  
  JAVA聲音 1.0 API為JAVA平臺定義了一整套的基本的底層音頻處理功能。它提供如下接口為:
  
  音頻捕捉和播放
  
  IDI合成及序列化
  
  這兩個主要的功能模塊在各自的程序包中提供。
  
  javax.media.sound.sampled-該程序包明確地說明了捕捉、混合以及回播數字采樣音頻的界面。
  
  javax.media.sound.MIDI-該程序包提供MIDI合成、序列化以

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品小视频| 992tv在线成人免费观看| 欧美精品在线看| 日韩av在线不卡| 久久97久久97精品免视看| 精品国产成人av| 亚洲毛茸茸少妇高潮呻吟| 成人欧美一区二区三区在线湿哒哒| 91爱爱小视频k| 日韩美女免费线视频| 亚洲欧美变态国产另类| 亚洲国产毛片完整版| 欧美综合第一页| 国产成人在线视频| 九九精品视频在线| 亚洲香蕉成人av网站在线观看| 日韩av网址在线| 成人久久久久爱| 美日韩在线视频| 欧美精品免费在线观看| 在线看国产精品| 久久国产精品首页| 久久精品福利视频| 成人中文字幕+乱码+中文字幕| 久久国产精品影片| 亚洲欧美在线x视频| 91久久精品久久国产性色也91| 欧美日韩成人在线视频| 亚洲欧洲中文天堂| 久久99精品久久久久久琪琪| 久久久久久久一区二区三区| 日韩免费精品视频| 日韩av网站导航| 91精品国产精品| 国产精品久久网| 色偷偷偷综合中文字幕;dd| 欧美精品久久久久久久久| 中文字幕亚洲欧美在线| 97超级碰碰人国产在线观看| 911国产网站尤物在线观看| 国产成人在线亚洲欧美| 久久久久久久一区二区| 久久精品中文字幕免费mv| 日韩av手机在线| 欧美性猛交xxxx| 91网站在线看| 清纯唯美亚洲综合| 岛国视频午夜一区免费在线观看| 日韩禁在线播放| 亚洲视频精品在线| 欧美日韩国产91| 日韩一区二区在线视频| 欧美xxxx做受欧美| 91久久国产精品91久久性色| 97精品国产aⅴ7777| 国产97色在线| 成人黄色免费看| 国产精品99蜜臀久久不卡二区| 亚洲人成伊人成综合网久久久| 欧美xxxx做受欧美| 欧美性黄网官网| 尤物yw午夜国产精品视频| 国产精品久久久久久久久久久久久久| 欧美中文字幕在线播放| 国产91色在线免费| 精品国偷自产在线视频| 视频在线观看99| 亚洲国产成人在线播放| 成人午夜黄色影院| 久热在线中文字幕色999舞| 国产91精品久久久| 久色乳综合思思在线视频| 欧洲美女7788成人免费视频| 亚洲欧美精品中文字幕在线| 日韩成人av在线播放| 亚洲一区国产精品| 精品国产区一区二区三区在线观看| 中文字幕在线观看亚洲| 97超碰蝌蚪网人人做人人爽| 国产精品香蕉av| 久久精视频免费在线久久完整在线看| 欧美一区二三区| 91在线观看免费观看| 久久久久久综合网天天| 日韩中文字幕网| 成人久久一区二区三区| 国产精品r级在线| 国产丝袜精品视频| 色诱女教师一区二区三区| 日韩精品有码在线观看| 日韩欧美主播在线| 亚洲午夜女主播在线直播| 中文字幕精品www乱入免费视频| 色婷婷**av毛片一区| 成人激情视频在线| 久久电影一区二区| 久久精品国产2020观看福利| 色偷偷9999www| 国产成人精品免费久久久久| 亚洲第一在线视频| 成人自拍性视频| 精品人伦一区二区三区蜜桃免费| 亚洲免费成人av电影| 久久综合久久美利坚合众国| 亚洲欧美日韩综合| 亚洲午夜国产成人av电影男同| 欧美性猛交xxxx乱大交3| 精品性高朝久久久久久久| 精品日本美女福利在线观看| 精品在线小视频| 亚洲最大中文字幕| 亚洲free性xxxx护士hd| 久热精品视频在线| 久久久久久中文| 国产精品美女免费看| 欧美性资源免费| 国产在线播放91| 日本久久久久久久久| 国产日产欧美a一级在线| 亚洲第一福利网| 欧美性感美女h网站在线观看免费| 麻豆乱码国产一区二区三区| 欧美成人亚洲成人日韩成人| 成人av资源在线播放| 国产mv免费观看入口亚洲| 91精品久久久久久久久久另类| 国产日韩在线看| 91久久久久久久一区二区| 国产91精品久久久| 成人网在线视频| 国产91精品最新在线播放| 国产91精品久久久久久| 日韩精品在线观看一区| 国产日韩精品综合网站| 国产69精品久久久久9999| 国内精品在线一区| 91网站免费看| 日韩av免费一区| 日韩精品视频观看| 国产精品丝袜久久久久久不卡| 日韩电影免费观看在线观看| 国产日产亚洲精品| 日韩激情av在线免费观看| 色诱女教师一区二区三区| 欧美黄色三级网站| 国产日产欧美a一级在线| 亚洲性xxxx| 最近日韩中文字幕中文| 欧美极品欧美精品欧美视频| 欧美成人激情在线| 欧美精品videosex极品1| 亚洲视频一区二区三区| 久久久精品一区二区| 最新91在线视频| 久久精品中文字幕电影| 日韩免费在线播放| 91免费高清视频| 综合网中文字幕| 欧美性猛交xxxx乱大交| 亚洲电影免费观看高清完整版在线观看| 精品久久久香蕉免费精品视频| 亚洲一区久久久| 日韩在线小视频| 97国产精品视频人人做人人爱|