PlayBook QNX AudioManager Example
I wanted to show how to use another QNX AIR API, specifically the class AudioManager. It provides a singleton instance of the AudioManager which gives access to the available inputs and outputs on the device. You can then set the levels and mute state of both input and output. In the example code project QNXAudioManager it plays a local mp3 that is bundled with the application. It also displays the different event messages that are fired while making changes to the input or output. And it provides a QNX VolumeSlider
to set the output level while playing the mp3.
Here is the main chunk of code that setups and uses the singleton instance of AudioManager.
log("AvailableInputs: " + audioManager.availableInputs.length);
for (var i:int = 0; i < audioManager.availableInputs.length; i++)
{
log(i + " - " + audioManager.availableInputs[i]);
}
log("AvailableOutputs: " + audioManager.availableOutputs.length);
for (var j:int = 0; j < audioManager.availableOutputs.length; j++)
{
log(j + " - " + audioManager.availableOutputs[j]);
}
audioManager.addEventListener(AudioManagerEvent.AVAILABLE_INPUTS_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.AVAILABLE_OUTPUTS_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.CONNECTED_INPUT_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.CONNECTED_OUTPUT_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.INPUT_LEVEL_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.INPUT_MUTE_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.OUTPUT_LEVEL_CHANGED, eventHandler);
audioManager.addEventListener(AudioManagerEvent.OUTPUT_MUTE_CHANGED, eventHandler);
log("connectedInput: " + audioManager.connectedInput);
log("connectedInput: " + audioManager.connectedOutput);
audioManager.setInputMute(true);
audioManager.setInputMute(false);
There is only seems to be one input for the PlayBook; found at qnx.system.AudioInput.INPUT
. But there are four different audio output types: qnx.system.AudioOutput.BLUETOOTH
, qnx.system.AudioOutput.HDMI
, qnx.system.AudioOutput.HEADPHONES
, and qnx.system.AudioOutput.SPEAKERS
. You can check the audioManager.connectedInput
and audioManager.connectedOutput
values against the constants above.
Then the slider changes the output level on slider_move event:
{
audioManager.setOutputLevel(event.value);
}
Here is what the app looks like on the simulator, nothing fancy but a way to check out the event firing off the AudioManager instance.
All the source code for this example is on github here.
Pingback: Some Great BlackBerry PlayBook Blog Posts : Ryan Stewart – Mountaineer Coding
Pingback: Some Great BlackBerry PlayBook Blog Posts (Adobe Flash Platform Blog)