/** * rb_player_play: * @player: a #RBPlayer * @play_type: requested playback start type * @crossfade: requested crossfade duration (nanoseconds) * @error: returns error information * * Starts playback of the most recently opened stream. * if @play_type is #RB_PLAYER_PLAY_CROSSFADE, the player * may attempt to crossfade the new stream with any existing * streams. If it does this, the it will use @crossfade as the * duration of the fade. * * If @play_type is #RB_PLAYER_PLAY_AFTER_EOS, the player may * attempt to start the stream immediately after the current * playing stream reaches EOS. This may or may not result in * the phenomemon known as 'gapless playback'. * * If @play_type is #RB_PLAYER_PLAY_REPLACE, the player will stop any * existing stream before starting the new stream. It may do * this anyway, regardless of the value of @play_type. * * The 'playing-stream' signal will be emitted when the new stream * is actually playing. This may be before or after control returns * to the caller. * * Return value: %TRUE if playback started successfully */ gboolean rb_player_play (RBPlayer *player, RBPlayerPlayType play_type, gint64 crossfade, GError **error) { RBPlayerIface *iface = RB_PLAYER_GET_IFACE (player); return iface->play (player, play_type, crossfade, error); }
/** * rb_player_play: * @player: a #RBPlayer * @crossfade: requested crossfade duration * @error: returns error information * * Starts playback of the most recently opened stream. * If @crossfade is greater than zero, the player may attempt * to crossfade the new stream with any existing streams. * * If @crossfade is zero, the player may attempt to start the * stream immediately after the current playing stream reaches * EOS. This may or may not result in the phenomemon known * as 'gapless playback'. * * If @crossfade is less than zero, the player will stop any * existing stream before starting the new stream. It may do * this anyway, regardless of the value of @crossfade. * * The 'playing-stream' signal will be emitted when the new stream * is actually playing. This may be before or after control returns * to the caller. * * Return value: TRUE if playback started successfully */ gboolean rb_player_play (RBPlayer *player, gint crossfade, GError **error) { RBPlayerIface *iface = RB_PLAYER_GET_IFACE (player); return iface->play (player, crossfade, error); }