The AudioChannelManager interface of the AudioChannels API includes features for managing your device's audio channels, including setting what channel's volume to affect when the volume buttons are pressed inside a particular app.
Methods
Note: Inherits methods from its parent, EventTarget
Properties
Note: Inherits properties from its parent, EventTarget
- AudioChannelManager.headphonesRead only
- A boolean that indicates whether headphones are plugged into the device.
- AudioChannelManager.telephonySpeaker
- A boolean that allows you to set whether the "telephony" audio channel should be played out of the device's speakers.
- AudioChannelManager.volumeControlChannel
- A DOMStringthat allows you to set which audio channel should have its volume changed when you press the device's hardware volume controls.
Event handlers
- AudioChannelManager.onheadphoneschange
- Fired when the device's headphones are plugged in or unplugged.
Example
In the following simple example, we use the navigator.mozAudioChannelManager property to access the app's AudioChannelManager object, first to do some rudimentary feature detection, and then to set value of the AudioChannelManager.volumeControlChannel property, based on a received variable.
var channelValue = 'content';
if (navigator.mozAudioChannelManager) {
  if(channelValue == 'normal') {
    navigator.mozAudioChannelManager.volumeControlChannel = 'normal';
  } else if(channelValue == 'content') {
    navigator.mozAudioChannelManager.volumeControlChannel = 'content';
  }
  console.log(navigator.mozAudioChannelManager.volumeControlChannel);
}
Note: For a complete working example, see our audio-channels-demo. Try running this on your Firefox OS device as an installed app (install it using App Manager/WebIDE) and then see what happens when you play the music and then put the app in the background, with the channel set to normal, then content.
Specifications
The AudioChannels API has no official spec at the moment; see https://wiki.mozilla.org/WebAPI/AudioChannels for implementation details, WebIDL, etc.
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | 
|---|---|---|---|---|---|
| General support | No support | No support | No support | No support | No support | 
| Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | 
|---|---|---|---|---|---|---|---|
| General support | No support | No support | No support | 1.0.1 | No support | No support | No support |