| 套件 | flash.media |
| 類別 | public final class AudioDeviceManager |
| 繼承 | AudioDeviceManager EventDispatcher Object |
| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | Flash Player 27, AIR 28 - (Desktop) |
從一個 AIR 應用程式選取的音效裝置,不會影響其他 AIR 應用程式或 Flash Player 實體中的音效。
隱私限制
AudioDeviceManager API 受到「使用者觸發動作」(UIA) 所限制,也就是說,只能透過某些使用者互動來叫用。如果此 API 不是由使用者互動來叫用,Flash Player 就會擲回執行階段錯誤 IllegalOperationError,以及設定為 2176 的錯誤碼。若是 AIR 應用程式,當我們載入透過網路裝載的外部 SWF/HTML 時,將會進行 UIA 檢查。如果外部載入的 SWF/HTML 嘗試在沒有任何使用者叫用動作的情況下,變更音效輸出裝置,則 AIR 執行階段會擲回錯誤 IllegalOperationError 及錯誤碼 2176。
存取 AudioDeviceManager 實體
AudioDeviceManager 實體是 Singleton 物件,會與 Flash Player 的「音效輸出設定」同步。用戶端應使用 AudioDeviceManager.audioDeviceManager,以取得此 Singleton 物件的參照。
取得系統上目前可用的音效裝置
使用 AudioDeviceManager.deviceNames 可以取得系統中所有可用的音效輸出裝置。
取得目前選取的音效裝置
使用 AudioDeviceManager.selectedDeviceIndex,可以尋找目前所用音效輸出裝置的索引。使用此索引,可以在從 AudioDeviceManager.deviceNames 傳回的裝置清單中尋找裝置名稱。
選取音效輸出裝置
若將 AudioDeviceManager.selectedDeviceIndex 設定為不同值,則可以使該裝置成為目前選取的音效播放裝置。
監控音效輸出裝置變更
音效輸出裝置可能會因為使用者從 Flash Player 的「設定」使用者介面選取不同裝置、內容設定為 AudioDeviceManager.selectedDeviceIndex、系統新增/移除音效裝置而有所變更。用戶端應用程式可以向事件 AudioOutputChangeEvent.AUDIO_OUTPUT_CHANGE 註冊偵聽程式,以便在音效輸出裝置變更時收到通知。事件物件的 reason 屬性表示觸發此變更的方式。reason 屬性有 2 個可能值:AudioOutputChangeReason.USER_SELECTION 表示使用者透過 Flash Player 的「設定」使用者介面選取不同音效輸出裝置,或者內容設定 AudioDeviceManager.selectedDeviceIndex。AudioOutputChangeReason.DEVICE_CHANGE 表示已從系統新增或移除音效輸出裝置。
| 屬性 | 定義自 | ||
|---|---|---|---|
| audioDeviceManager : AudioDeviceManager [靜態] [唯讀]
AudioDeviceManager 物件的 Singleton 實體。 | AudioDeviceManager | ||
![]() | constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | |
| deviceNames : Array [唯讀]
字串陣列,內含所有可用音效輸出裝置的名稱。 | AudioDeviceManager | ||
| isSupported : Boolean [靜態] [唯讀]
是否啟用 AudioDeviceManager。 | AudioDeviceManager | ||
| selectedDeviceIndex : int
目前所選音效輸出裝置的索引,它會反映在 AudioDeviceManager.deviceNames 所傳回的陣列中。 | AudioDeviceManager | ||
| 事件 | 摘要 | 定義自 | ||
|---|---|---|---|---|
![]() | [廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | ||
| 音效輸出裝置因下列原因而變更時傳送:(1) 使用者選擇 - 使用者透過 Flash Player 的「設定」使用者介面選取,內容設定 AudioDeviceManager.selectedDeviceIndex (2) 裝置變更 - 系統已新增/移除音效裝置。 | AudioDeviceManager | |||
![]() | [廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | ||
audioDeviceManager | 屬性 |
audioDeviceManager:AudioDeviceManager [唯讀] AudioDeviceManager 物件的 Singleton 實體。
實作
public static function get audioDeviceManager():AudioDeviceManagerdeviceNames | 屬性 |
deviceNames:Array [唯讀]
字串陣列,內含所有可用音效輸出裝置的名稱。此陣列會透過下列屬性,為每個音效輸出裝置提供從零開始的索引,以及系統上的音效輸出裝置數目:AudioDeviceManager.deviceNames.length 如需詳細資訊,請參閱「Array 類別」項目。這個裝置名稱清單與「音效輸出設定」中的相同。
Chrome 瀏覽器注意事項:Chrome 需要使用者授與麥克風存取權限,才能列舉音效輸出裝置,因為「音效輸出」和「音效輸入」共用相同權限,並且使用者只會看到「音效輸入」權限警告。
實作
public function get deviceNames():ArrayisSupported | 屬性 |
selectedDeviceIndex | 屬性 |
audioOutputChange | 事件 |
flash.events.AudioOutputChangeEvent屬性 AudioOutputChangeEvent.type =
flash.events.AudioOutputChangeEvent.AUDIO_OUTPUT_CHANGE| 語言版本: | ActionScript 3.0 |
| 執行階段版本: | Flash Player 27, AIR 28 - (Desktop) |
音效輸出裝置因下列原因而變更時傳送:(1) 使用者選擇 - 使用者透過 Flash Player 的「設定」使用者介面選取,內容設定 AudioDeviceManager.selectedDeviceIndex (2) 裝置變更 - 系統已新增/移除音效裝置。
請檢查此事件的 reason 屬性,以找出造成變更的原因。可能原因包括:AudioOutputChangeReason.USER_SELECTION AudioOutputChangeReason.DEVICE_CHANGE。
AudioOutputchangeEvent 事件物件的 type 屬性值。
Tue Jun 12 2018, 03:47 PM Z
隱藏繼承公用屬性
顯示繼承公用屬性