麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JAVA聲音技術(shù)

2019-11-18 13:27:52
字體:
供稿:網(wǎng)友

  聲音可以創(chuàng)造意境,觸發(fā)遐想,當(dāng)與虛擬圖像相結(jié)合時,更加可以讓整個世界布滿幻覺。聲音是多媒體技術(shù)的基礎(chǔ)。這就是Sun公司的java媒體技術(shù)開發(fā)小組忙于預(yù)備Java Sound 1.0 API并將其包含于下一版本的JAVA開發(fā)工具庫中的原因。
  
  在JAVA2平臺出現(xiàn)之前,JAVA語言只能處理電話音質(zhì)的聲音,以單聲道8KHZ的采樣頻率存儲為μ-law AU文件。JAVA2平臺增加了對AIFF,WAV以及三種MIDI文件類型的支持。所支持的三種MIDI文件格式為MIDI文件類型0、MIDI文件類型1、以及RMF。
  
  應(yīng)用程序接口API1.0版提供了一個易于使用的工具集,使程序員可以訪問底層的合成與演奏引擎,從而擴展了JAVA聲音的應(yīng)用。其中兩個重要的領(lǐng)域是創(chuàng)建數(shù)字化音頻以及樂器指令數(shù)字化接口MIDI。由于提供了大量的底層支持功能,所以程序員能輸入輸出聲音,控制MIDI設(shè)備,并能查詢系統(tǒng)運作情況。
  
  聲音文件類型簡介
  
  主要的聲音文件類型如下:
  
  AU - (擴展名為AU或SND)適用于短的聲音文件,為Solaris和下一代機器的通用文件格式,也是JAVA平臺的標(biāo)準(zhǔn)的音頻格式。AU類型文件使用的三種典型音頻格式為: 8位μ-law類型(通常采樣頻率為8kHz), 8位線性類型,以及16位線性類型。
  WAV - (擴展名為WAV)由 Microsoft和 IBM共同開發(fā),對WAV的支持已經(jīng)被加進Windows 95并且被延伸到Windows 98. WAV文件能存儲各種格式包括μ-law,a-law和 PCM (線性)數(shù)據(jù)。他們幾乎能被所有支持聲音的Windows應(yīng)用程序播放。
  
  AIFF - (擴展名為AIF或IEF)音頻互換文件格式是為Macintosh計算機和Silicon Graphics (SGI)計算機所共用的標(biāo)準(zhǔn)音頻文件格式。AIFF和 AIFF-C幾乎是相同的,除了后者支持例如μ-law和 IMA ADPCM類型的壓縮。
  
  MIDI - (擴展名為MID)樂器數(shù)字接口MIDI是為音樂制造業(yè)所認可的標(biāo)準(zhǔn),主要用于控制諸如合成器和聲卡之類的設(shè)備。
  
  MIDI文件不包含數(shù)字音頻采樣,而是包括一系列指令,這些指令控制把來自不同樂器上的音符序列合成樂曲。一些MIDI文件包含附加指令來為各種合成設(shè)置進行編程。
  
  大多數(shù)合成器支持MIDI標(biāo)準(zhǔn),所以在一個合成器上制作的音樂能夠在另一個上播放。 有 MIDI接口的計算機能操縱 MIDI數(shù)據(jù)以產(chǎn)生新音樂或音響效果。例如,一個完整的音樂作品可以通過一個軟件驅(qū)動的命令轉(zhuǎn)換成全新的形式。
  
  JAVA聲音引擎支持兩種MIDI文件類型:
  
  MIDI類型0文件-包含僅僅一個序列,所有相關(guān)的樂器部分被包含在同一個邏輯 "磁道"上。
  
  MIDI類型1文件-包含多重的 "磁道"使得不同的樂器被邏輯地分開,從而使對聲音的操作和重組更加輕易。
  
  RMF - (擴展名為RMF)混合音樂格式是由Beatnik設(shè)計出來的混合文件類型,通過交互式設(shè)定將MIDI和音頻采樣封裝在一起。RMF好比是一個所有音樂相關(guān)文件的容器。RMF也包含對有關(guān)版權(quán)的具體文件說明的支持。RMF文件可以包含多個由不同藝術(shù)家創(chuàng)作的存儲為MIDI類型或音頻采樣類型的作品,每個都關(guān)聯(lián)著相關(guān)的版權(quán)信息。
  
  對聲音引擎的選擇
  
  在1997年,SUN的JAVA媒體開發(fā)組試圖找到一種方法,以增強聲音的處理能力并為將來提供一個堅實的平臺。根據(jù)JAVA媒體開發(fā)組經(jīng)理Michael Bundschuh所說,
  "我們想要非常高質(zhì)量的播放引擎以處理所有的從八位μ-law級直到 CD質(zhì)量聲音的每一件操作。 我們希望輕松跨越所有平臺,諸如Solaris平臺, Windows, Mac以及其他。我們也想要高度發(fā)展了的能夠跨越不同平臺的MIDI能力。為上述目的,合理的選擇是Beatnik的音頻引擎(從前是Headspace。)"
  SUN取得了Beatnik的音頻引擎使用許可,把它當(dāng)作JAVA聲音應(yīng)用程序接口API的基礎(chǔ)。
  
  Thomas Dolby Robertson-Beatnik簡介
  
  在90年代初之前,Thomas Dolby Robertson的職業(yè)完全在音樂方面。他1982推出的"她用科學(xué)照亮了我"是一部早期的MTV巨作。整個80年代,他都在不斷地作曲和錄音,使用一種非結(jié)構(gòu)化音樂制作軟件。但是在 1990,通過一次為Guggenheim博物館演示虛擬現(xiàn)實的合作,他開始思考能否做一些提高音樂制作能力的工作。
  
  "我當(dāng)時正伏在 C程序員的肩上,并且我忽然熟悉到為做記錄做了大量的工作,可是沒有為演奏時的交互做任何事情。"有了這樣的想法,Robertson在1992年建立了Headspace,雇用月光作曲組來幫助實現(xiàn)他的觀點。Headspace于1996年成為公司,現(xiàn)在被稱為Beatnik。
  
  JAVA聲音音頻引擎
  
  JAVA聲音引擎為多媒體創(chuàng)建,同時考慮了游戲設(shè)計和發(fā)布WEB內(nèi)容。用標(biāo)準(zhǔn)的 MIDI文件、RMF文件、并且/或來自任何源的采樣,該引擎將播放音樂或制造音響效果,同時盡可能少用CPU。它提供完全的播放控制,具有混合音響的能力并可實時地回應(yīng)用戶的輸入。
  
  JAVA聲音引擎是軟件 MIDI合成器,采樣播放設(shè)備,以及16位立體混聲器。它支持混合直到64位的立體MIDI聲音和音頻采樣。它直接支持MIDI類型0和類型1文件以及從8位設(shè)備到16位樂器的波表合成。該引擎支持所有通用的 MIDI控制器并且包含象回聲處理, LFO (控制過濾器或立體聲設(shè)備)之類的特性,以及ADSR信封 (播放時整形采樣)。
  
  即使用上所有的功能,JAVA聲音引擎在一個90Mhz的奔騰計算機上也占用不超過30%的CPU時間。它還能通過有選擇地禁用不需要的特性,使其變得更加高效一些。另外,它發(fā)布了存儲在壓縮的RMF音樂文件中的豐富的內(nèi)容。Thomas Dolby Robertson的"她用科學(xué)照亮了我",一首7分21秒的歌曲,如存儲為CD音質(zhì)的文件足足占用70M字節(jié)空間。假如以RMF格式存儲只需大約636 KB,是120:1的減少,同時絲毫不減音質(zhì)。
  為更多有關(guān)Beatnik的信息,請看Beatnik的WEB站點。
  
  JAVA平臺聲音的簡要歷史
  
  在JDK 1.0.x及JDK 1.1.x下, AudioClip接口提供下列機能:
  
  l AudioClip接口
  
  播放
  循環(huán)
  停止
  
  恢復(fù)和播放聲音最簡單的方法是通過Applet類的play()方法。調(diào)用play()方法有如下二種方式:
  
  play()-帶有一個參數(shù),一個 URL對象,裝載并演奏儲存在 URL處的聲音片斷。
  
  play()-帶有二個參數(shù),基本 URL和文件夾路徑名,裝載并演奏聲音文件。第一參數(shù)經(jīng)常是對getCodeBase()或 getDocumentBase()的調(diào)用。
  
  下列代碼片斷舉例說明了直接播放 hello.au的方法。AU文件與小應(yīng)用程序位于相同文件夾或目錄。
  
  play(getCodeBase(), "hello.au");
  
  play()一旦被調(diào)用馬上開始恢復(fù)和播放聲音。假如聲音文件不能被查找,將不會有出錯信息,僅僅是沉默。
  啟動和停止聲音文件,或循環(huán)播放,你必須用 applet的 getAudioClip方法把它裝載進入 AudioClip對象,類似上面play()方法的參數(shù),getAudioClip方法要用一個或兩個參數(shù),當(dāng)作播放的指示。 第一個或唯一的一個參數(shù)是 URL參數(shù),用來指示聲音文件的位置,第二參數(shù)是文件夾路徑指針。
  
  下列代碼行舉例說明加載聲音文件進入剪貼對象:
  
  AudioClip co = getAudioClip(getCodeBase(), "horns.wav");
  
  getAudioClip()方法僅僅能被applet內(nèi)調(diào)用。隨著JAVA2的引入,應(yīng)用程序也能用Applet類的newAudioClip方法裝入聲音文件。前一例子可以改寫如下以用于Java應(yīng)用程序:
  
  AudioClip co = newAudioClip("horns.wav");
  
  在你已創(chuàng)建 AudioClip對象之后,你能用該對象調(diào)用play()、loop()以及stop()方法。假如 getAudioClip或 newAudioClip方法不能找到指定的聲音文件, AudioClip對象的值將是空的。試著播放空對象會導(dǎo)致出錯,所以標(biāo)準(zhǔn)的過程首先是對該條件進行檢測。
  接下來是一個完整的程序設(shè)計示例,該程序?qū)a(chǎn)生一個applet,當(dāng)鼠標(biāo)在該小應(yīng)用程序applet范圍內(nèi)按下時會播放 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技術(shù)書籍中,mouseDown()方法確實是JAVA 1.0事件模型的一部分。使用該方法會有一定的危險,因為該方法在將來可能不會被支持。在JAVA2平臺下將MouseListener與mousePressed結(jié)合使用是優(yōu)先的選擇。
  
  API 1.0-質(zhì)的飛躍
  
  注重:下列備注是以JAVA API的早期版本0.86為基礎(chǔ)的。雖然目前這里討論的大多數(shù)對象和概念與過去保持一致,但由于該API版本已經(jīng)終止,出現(xiàn)某些改變的可能是存在的。
  
  JAVA聲音 1.0 API為JAVA平臺定義了一整套的基本的底層音頻處理功能。它提供如下接口為:
  
  音頻捕捉和播放
  
  IDI合成及序列化
  
  這兩個主要的功能模塊在各自的程序包中提供。
  
  javax.media.sound.sampled-該程序包明確地說明了捕捉、混合以及回播數(shù)字采樣音頻的界面。
  
  javax.media.sound.MIDI-該程序包提供MIDI合成、序列化以

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久草在线资源观看 | 久草视频福利在线观看 | 9797色| 欧美日本日韩 | 中文字幕综合 | 免费在线观看亚洲 | 亚洲免费观看视频 | 一级黄色欧美 | 欧美在线黄色 | 九九热在线视频观看 | 亚洲va在线 | 92精品国产自产在线 | 久久艹精品| 精品人成 | 欧美日本91精品久久久久 | 亚洲啊v在线观看 | 99精品视频在线 | 亚洲精品永久视频 | 久久电影一区二区 | 在线天堂中文在线资源网 | 九一传媒在线观看 | 免费男女乱淫真视频 | 亚洲综合无码一区二区 | 92看片淫黄大片欧美看国产片 | 欧美三级日本三级少妇99 | 91av在线影院 | 久久精品日韩一区 | 九九色精品 | 国产91精品一区二区麻豆亚洲 | 最新欧美精品一区二区三区 | 国产亚洲精品久久午夜玫瑰园 | 狠狠色成色综合网 | 全黄裸片武则天一级第4季 偿还电影免费看 | 精品一区二区三区在线观看国产 | 欧美www| 欧美爱爱一区二区 | 毛片在线免费播放 | 中文字幕 亚洲一区 | 99精品国产成人一区二区 | 久久中文一区 | 老女人碰碰在线碰碰视频 |