套件 | 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():AudioDeviceManager
deviceNames | 屬性 |
deviceNames:Array
[唯讀]
字串陣列,內含所有可用音效輸出裝置的名稱。此陣列會透過下列屬性,為每個音效輸出裝置提供從零開始的索引,以及系統上的音效輸出裝置數目:AudioDeviceManager.deviceNames.length
如需詳細資訊,請參閱「Array 類別」項目。這個裝置名稱清單與「音效輸出設定」中的相同。
Chrome 瀏覽器注意事項:Chrome 需要使用者授與麥克風存取權限,才能列舉音效輸出裝置,因為「音效輸出」和「音效輸入」共用相同權限,並且使用者只會看到「音效輸入」權限警告。
實作
public function get deviceNames():Array
isSupported | 屬性 |
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