The audio API is the interface we have built around GStreamer to support our specific use cases. Most backends should be able to get by with simply setting the URI of the resource they want to play, for these cases the default playback provider should be used.
For more advanced cases such as when the raw audio data is delivered outside of GStreamer or the backend needs to add metadata to the currently playing resource, developers should sub-class the base playback provider and implement the extra behaviour that is needed through the following API:
Audio output through GStreamer.
Call this to deliver raw audio data to be played.
Note that the uri must be set to appsrc:// for this to work.
Returns true if data was delivered.
Parameters: | buffer (gst.Buffer) – buffer to pass to appsrc |
---|---|
Return type: | boolean |
Put an end-of-stream token on the playbin. This is typically used in combination with emit_data().
We will get a GStreamer message when the stream playback reaches the token, and can then do any end-of-stream related tasks.
Get mute status of the software mixer.
Return type: | True if muted, False if unmuted, None if no mixer is installed. |
---|
Get position in milliseconds.
Return type: | int |
---|
Get volume level of the software mixer.
Example values:
Return type: | int in range [0..100] |
---|
Notify GStreamer that it should pause playback.
Return type: | True if successfull, else False |
---|
Notify GStreamer that we are about to change state of playback.
This function MUST be called before changing URIs or doing changes like updating data that is being pushed. The reason for this is that GStreamer will reset all its state when it changes to gst.STATE_READY.
Switch to using appsrc for getting audio to be played.
You MUST call prepare_change() before calling this method.
Parameters: |
|
---|
Set track metadata for currently playing song.
Only needs to be called by sources such as appsrc which do not already inject tags in playbin, e.g. when using emit_data() to deliver raw audio data to GStreamer.
Parameters: | track (mopidy.models.Track) – the current track |
---|
Mute or unmute of the software mixer.
Parameters: | mute (bool) – Whether to mute the mixer or not. |
---|---|
Return type: | True if successful, else False |
Set position in milliseconds.
Parameters: | position (int) – the position in milliseconds |
---|---|
Return type: | True if successful, else False |
Set URI of audio to be played.
You MUST call prepare_change() before calling this method.
Parameters: | uri (string) – the URI to play |
---|
Set volume level of the software mixer.
Parameters: | volume (int) – the volume in the range [0..100] |
---|---|
Return type: | True if successful, else False |
Notify GStreamer that it should start playback.
Return type: | True if successfull, else False |
---|
The GStreamer state mapped to mopidy.audio.PlaybackState
Notify GStreamer that is should stop playback.
Return type: | True if successfull, else False |
---|
Marker interface for recipients of events sent by the audio actor.
Any Pykka actor that mixes in this class will receive calls to the methods defined here when the corresponding events happen in the core actor. This interface is used both for looking up what actors to notify of the events, and for providing default implementations for those listeners that are not interested in all events.
Called whenever the end of the audio stream is reached.
MAY be implemented by actor.
Helper to allow calling of audio listener events
Called after the playback state have changed.
Will be called for both immediate and async state changes in GStreamer.
Target state is used to when we should be in the target state, but temporarily need to switch to an other state. A typical example of this is buffering. When this happens an event with old=PLAYING, new=PAUSED, target=PLAYING will be emitted. Once we have caught up a old=PAUSED, new=PLAYING, target=None event will be be generated.
Regular state changes will not have target state set as they are final states which should be stable.
MAY be implemented by actor.
Parameters: |
|
---|