Copy link to clipboard
Copied
Welcome to the updated Flash Runtime version 27 beta! We've been working on new features and fixing important bugs for Flash Player and we're looking forward to receiving feedback from our Flash Player community.
This beta release includes enhancements and bug fixes related to security, stability, performance, and device compatibility for Flash Player 27. For full details, please see our release notes.
Note:
With the release of Flash Player 27, developers can now select the audio output from ActionScript using the new ActionScript API - “AudioDeviceManager”. It is in sync with Flash Player's audio output settings. A UIA (User Invoked Action) restriction is applied to this API keeping in view user privacy concerns. The API can only be invoked by a user invoked action. If it is not invoked by user action, Flash Player throws a runtime error "IllegalOperationError" with error code 2176.
Use the AudioDeviceManager class to list down the audio output devices attached to a system using the property, deviceNames(). This returns an array of the attached devices. The index of the selected device from that array can then be retrieved using the selectedDeviceIndex() property. A new event introduced with this API, named AudioOutputChangeEvent.AUDIO_OUTPUT_CHANGE is dispatched to ActionScript listeners when the audio output changes. It is dispatched when the user selects a different audio device from Flash Player's setting UI (Audio Output), content setting (AudioDeviceManager.selectedDeviceIndex), or when adding/ removing the device from the system. The ActionScript client can check how the audio output change is triggered through “AudioOutputChangeEvent.reason” class.
The two reason codes are "AudioOutputChangeReason.USER_SELECTION" and "AudioOutputChangeReason.DEVICE_CHANGE".
Here is the general workflow of the API:
Sample Snippet:
var audio_device_manager:AudioDeviceManager = AudioDeviceManager.audioDeviceManager;
var status_ta:mx.controls.TextArea;
status_ta.html =
false
;
status_ta.setStyle(
"fontSize"
,
9
);
var audio_output_device_array:Array = audio_device_manager.deviceNames;
var selected_audio_device:String = audio_output_device_array[audio_device_manager.selectedDeviceIndex];
status_ta.text =
"The default device is: "
+selected_audio_device+newline+newline;
status_ta.text +=
"You have "
+audio_output_device_array.length+
" device(s) available."
+newline+newline;
for
(var i =
0
; i<audio_output_device_array.length; i++) {
status_ta.text +=
"["
+i+
"] "
+audio_output_device_array+newline;
}
Select an audio output device
var audio_device_manager:AudioDeviceManager = AudioDeviceManager.audioDeviceManager;
audio_device_manager.selectedDeviceIndex = desired_audio_output_index;
Monitor audio output change
function audioOutputChangeHandler(evt:AudioOutputChangeEvent):
void
{
if
(evt.reason == AudioOutputChangeReason.USER_SELECTION) {
[
do
something]
}
else
if
(evt.reason == AudioOutputChangeReason.DEVICE_CHANGE) {
[
do
something]
}
}
Authoring for Flash Player 27 and AIR 27
For system requirements of the current release of Flash Player in production, please visithttp://www.adobe.com/products/flashplayer/systemreqs/
To get the latest Beta build of Flash Player visit Adobe labs