WebAPI/AudioChannels: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with "This API introduces the concept of a hierarchy of audio channels. The channels are prioritized as to allow "silencing all channels with priority lower than X". The channels are:...")
 
Line 17: Line 17:
  interface AudioChannelManager : EventTarget {
  interface AudioChannelManager : EventTarget {
   muteChannelsBelow(DOMString type);
   muteChannelsBelow(DOMString type);
  unmuteChannels();
   readonly attribute DOMString[] mutedChannels;
   readonly attribute DOMString[] mutedChannels;
   attribute EventHandler onmutedchanged;
   attribute EventHandler onmutedchange;
   
   
   readonly attribute boolean headphones;
   readonly attribute boolean headphones;
  attribute EventHandler onheadphoneschange; // Always fired before audio start playing through the new channel
  attribute boolean speaker;
   
   
   attribute DOMString volumeControlChannel; // The channel whose volume is changed if the user presses the volumeup/down buttons.
   attribute DOMString volumeControlChannel; // The channel whose volume is changed if the user presses the volumeup/down buttons.
  }
  }

Revision as of 00:04, 8 November 2012

This API introduces the concept of a hierarchy of audio channels. The channels are prioritized as to allow "silencing all channels with priority lower than X".

The channels are:

  • telephony (used by both normal telephony calls, as well as VoIP calls)
  • alarm
  • speakernotify (useful for camera "click" sounds etc).
  • normal

We probably need a bunch more channels here. And I'm not sure about the priority.

Open questions

Do we need the ability to play audio through the normal audio channel or through speaker even when headphones/headset is plugged in? That seems useful for alarms. Maybe the "alarm" channel never plays through headphones/headset?

API

interface AudioChannelManager : EventTarget {
 muteChannelsBelow(DOMString type);
 unmuteChannels();
 readonly attribute DOMString[] mutedChannels;
 attribute EventHandler onmutedchange;

 readonly attribute boolean headphones;
 attribute EventHandler onheadphoneschange; // Always fired before audio start playing through the new channel

 attribute boolean speaker;

 attribute DOMString volumeControlChannel; // The channel whose volume is changed if the user presses the volumeup/down buttons.
}