Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  nsIAudioChannelAgent.idl   Sprache: unbekannt

 
Spracherkennung für: .idl vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface mozIDOMWindow;

typedef uint32_t nsSuspendedTypes;

[scriptable, builtinclass, uuid(2822a840-f009-11e5-a837-0800200c9a66)]
interface nsISuspendedTypes : nsISupports
{
  /**
   * The suspended enum is used for delaying autoplay video in non-visited tab
   *
   * Note: the "remote side" must control the AudioChannelAgent using
   * nsIAudioChannelAgentCallback.windowSuspendChanged() callback instead using
   * play/pause methods or any button in the webpage.
   *
   * - SUSPENDED_BLOCK
   * It's used to prevent auto-playing media in inactive page in order to
   * reduce the power consumption, and the media can't be resumed until the
   * page becomes active again. It would change the internal state of
   * MediaElement when it's being blocked/resumed, so it won't trigger the
   * related JS event. eg. "play" and "pause" event.
   */

  const uint32_t NONE_SUSPENDED             = 0;
  const uint32_t SUSPENDED_BLOCK            = 1;
};

[uuid(15c05894-408e-4798-b527-a8c32d9c5f8c)]
interface nsIAudioChannelAgentCallback : nsISupports
{
  /**
   * Notified when the window volume/mute is changed
   */
  void windowVolumeChanged(in float aVolume, in boolean aMuted);

   /**
   * Notified when the window needs to be suspended or resumed.
   */
  void windowSuspendChanged(in uint32_t aSuspend);

  /**
   * Notified when the capture state is changed.
   */
  void windowAudioCaptureChanged(in boolean aCapture);
};

/**
 * This interface provides an agent for gecko components to participate
 * in the audio channel service. Gecko components are responsible for
 *   1. Notifying the agent when they start/stop using this channel.
 *   2. Notifying the agent when they are audible.
 *
 * The agent will invoke a callback to notify Gecko components of
 *   1. Changes to the playable status of this channel.
 */

[uuid(4d212770-5d7b-446f-9394-632e351d96ee)]
interface nsIAudioChannelAgent : nsISupports
{
  const long AUDIO_AGENT_STATE_NORMAL               = 0;
  const long AUDIO_AGENT_STATE_MUTED                = 1;
  const long AUDIO_AGENT_STATE_FADED                = 2;

  /**
   * Initialize the agent with a channel type.
   * Note: This function should only be called once.
   *
   * @param window
   *    The window
   * @param callback
   *    1. Once the playable status changes, agent uses this callback function
   *       to notify Gecko component.
   *    2. The callback is allowed to be null. Ex: telephony doesn't need to
   *       listen change of the playable status.
   *    3. The AudioChannelAgent keeps a strong reference to the callback
   *       object.
   */
  void init(in mozIDOMWindow window, in nsIAudioChannelAgentCallback callback);

  /**
   * This method is just like init(), except the audio channel agent keeps a
   * weak reference to the callback object.
   *
   * In order for this to work, |callback| must implement
   * nsISupportsWeakReference.
   */
  void initWithWeakCallback(in mozIDOMWindow window,
                            in nsIAudioChannelAgentCallback callback);

  /**
   * Notify the agent that we want to start playing.
   * Note: Gecko component SHOULD call this function first then start to
   *          play audio stream only when return value is true.
   */
  void notifyStartedPlaying(in uint8_t audible);

  /**
   * Notify the agent we no longer want to play.
   *
   * Note : even if notifyStartedPlaying() returned false, the agent would
   * still be registered with the audio channel service and receive callbacks
   * for status changes. So notifyStoppedPlaying must still eventually be
   * called to unregister the agent with the channel service.
   */
  void notifyStoppedPlaying();


  /**
   * Notify agent that we already start producing audible data.
   *
   * Note : sometime audio might become silent during playing, this method is used to
   * notify the actually audible state to other services which want to know
   * about that, ex. tab sound indicator.
   */
  void notifyStartedAudible(in uint8_t audible, in uint32_t reason);
};

[ Dauer der Verarbeitung: 0.30 Sekunden  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge