瞭解聲音架構

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

應用程式可以從五個主要來源載入聲音資料:

  • 在執行階段載入的外部聲音檔案

  • 內嵌於應用程式 SWF 檔的聲音資源

  • 來自麥克風 (連接到使用者的系統) 的聲音資料

  • 從遠端媒體伺服器 (例如 Flash Media Server) 串流的聲音資料

  • 透過使用 sampleData 事件處理常式動態產生的聲音資料

聲音資料可以在播放之前完全載入,也可以藉由串流方式載入 (也就是在播放的同時仍然會繼續載入作業)。

ActionScript 3.0 聲音類別支援儲存格式為 MP3 的聲音檔案。它們無法直接載入或播放具有 WAV 或 AIFF 等其它格式的聲音檔案。不過,從 Flash Player 9.0.115.0 開始,您可以使用 NetStream 類別載入和播放 AAC 音效檔案。這項技巧與用來載入和播放視訊內容的技巧相同。如需有關這項技巧的詳細資訊,請參閱 使用視訊

使用 Adobe Flash Professional 時,您可以匯入 WAV 或 AIFF 聲音檔案,然後以 MP3 格式將它們嵌入應用程式的 SWF 檔中。Flash 編寫工具也能讓您壓縮嵌入的聲音檔案,以縮減檔案大小,但是縮減大小之後,聲音品質便會降低。如需詳細資訊,請參閱「使用 Flash」中的「匯入聲音」。

ActionScript 3.0 聲音架構會利用 flash.media 套件中的下列類別。

類別

說明

flash.media.Sound

Sound 類別會處理聲音的載入作業、管理基本的聲音屬性,以及開始播放聲音。

flash.media.SoundChannel

當應用程式播放 Sound 物件時,會建立新的 SoundChannel 物件以控制播放作業。SoundChannel 物件會控制聲音左右播放聲道的音量。每個聲音都會播放屬於自己的 SoundChannel 物件。

flash.media.SoundLoaderContext

SoundLoaderContext 類別可指定在載入聲音時要使用的緩衝秒數,以及指定在載入檔案時,Flash Player 或 AIR 是否要從伺服器尋找原則檔案。SoundLoaderContext 物件是用來當做 Sound.load() 方法的參數。

flash.media.SoundMixer

SoundMixer 類別可控制與應用程式中所有聲音都相關的播放和安全性屬性。事實上,多個聲道會透過共通的 SoundMixer 物件混合在一起,因此在 SoundMixer 物件中的屬性值將會影響所有目前正在播放的 SoundChannel 物件。

flash.media.SoundTransform

SoundTransform 類別含有控制音量和左右相位的值。此外,SoundTransform 物件還可以套用至個別的 SoundChannel 物件、全域 SoundMixer 物件或是 Microphone 物件。

flash.media.ID3Info

ID3Info 物件包含代表 ID3 中繼資料資訊的屬性,該資訊通常儲存在 MP3 聲音檔案中。

flash.media.Microphone

Microphone 類別代表連接到使用者電腦的麥克風或其它聲音輸入裝置。麥克風的音效輸入可以遞送至本機喇叭或傳送至遠端伺服器。Microphone 物件會控制屬於自己的聲音串流之增量、取樣頻率和其它特性。

flash.media.AudioPlaybackMode

AudioPlaybackMode 類別會定義 SoundMixer 類別之 audioPlaybackMode 屬性的常數。

每個載入和播放的聲音都需要屬於自己的 Sound 類別實體和 SoundChannel 類別實體。接著,在播放期間,多個 SoundChannel 實體的輸出就會由全域 SoundMixer 類別加以混合。

Sound、SoundChannel 和 SoundMixer 類別不會用於從麥克風或從像是 Flash Media Server 等串流媒體伺服器取得的聲音資料。