android.support.v4.media
Class TransportPerformer

java.lang.Object
  extended by android.support.v4.media.TransportPerformer

public abstract class TransportPerformer
extends java.lang.Object

Implemented by the playback side of the media system, to respond to requests to perform actions and to retrieve its current state. These requests may either come from key events dispatched directly to your UI, or events sent over a media button event receiver that this class keeps active while your window is in focus.


Constructor Summary
TransportPerformer()
           
 
Method Summary
 void onAudioFocusChange(int focusChange)
          Report that audio focus has changed on the app.
 int onGetBufferPercentage()
          Request to find out how much of the media has been buffered on the local device.
abstract  long onGetCurrentPosition()
          Request to return the current playback position, in milliseconds.
abstract  long onGetDuration()
          Request to return the duration of the current media, in milliseconds.
 int onGetTransportControlFlags()
          Retrieves the flags for the media transport control buttons that this transport supports.
abstract  boolean onIsPlaying()
          Request to find out whether the player is currently playing its media.
 boolean onMediaButtonDown(int keyCode, android.view.KeyEvent event)
          Report that a media button has been pressed.
 boolean onMediaButtonUp(int keyCode, android.view.KeyEvent event)
          Report that a media button has been released.
abstract  void onPause()
          Request to pause playback of the media, staying at the current playback position and other state so a later call to onStart() will resume at the same place.
abstract  void onSeekTo(long pos)
          Request to move the current playback position.
abstract  void onStart()
          Request to start playback on the media, resuming from whatever current state (position etc) it is in.
abstract  void onStop()
          Request to completely stop playback of the media, clearing whatever state the player thinks is appropriate.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransportPerformer

public TransportPerformer()
Method Detail

onStart

public abstract void onStart()
Request to start playback on the media, resuming from whatever current state (position etc) it is in.


onPause

public abstract void onPause()
Request to pause playback of the media, staying at the current playback position and other state so a later call to onStart() will resume at the same place.


onStop

public abstract void onStop()
Request to completely stop playback of the media, clearing whatever state the player thinks is appropriate.


onGetDuration

public abstract long onGetDuration()
Request to return the duration of the current media, in milliseconds.


onGetCurrentPosition

public abstract long onGetCurrentPosition()
Request to return the current playback position, in milliseconds.


onSeekTo

public abstract void onSeekTo(long pos)
Request to move the current playback position.

Parameters:
pos - New position to move to, in milliseconds.

onIsPlaying

public abstract boolean onIsPlaying()
Request to find out whether the player is currently playing its media.


onGetBufferPercentage

public int onGetBufferPercentage()
Request to find out how much of the media has been buffered on the local device.

Returns:
Return a percentage (0-100) indicating how much of the total data has been buffered. The default implementation returns 100, meaning the content is always on the local device.

onGetTransportControlFlags

public int onGetTransportControlFlags()
Retrieves the flags for the media transport control buttons that this transport supports. Result is a combination of the following flags: TransportMediator.FLAG_KEY_MEDIA_PREVIOUS, TransportMediator.FLAG_KEY_MEDIA_REWIND, TransportMediator.FLAG_KEY_MEDIA_PLAY, TransportMediator.FLAG_KEY_MEDIA_PLAY_PAUSE, TransportMediator.FLAG_KEY_MEDIA_PAUSE, TransportMediator.FLAG_KEY_MEDIA_STOP, TransportMediator.FLAG_KEY_MEDIA_FAST_FORWARD, TransportMediator.FLAG_KEY_MEDIA_NEXT

The default implementation returns: TransportMediator.FLAG_KEY_MEDIA_PLAY, TransportMediator.FLAG_KEY_MEDIA_PLAY_PAUSE, TransportMediator.FLAG_KEY_MEDIA_PAUSE, and TransportMediator.FLAG_KEY_MEDIA_STOP


onMediaButtonDown

public boolean onMediaButtonDown(int keyCode,
                                 android.view.KeyEvent event)
Report that a media button has been pressed. This is like KeyEvent.Callback.onKeyDown(int, android.view.KeyEvent) but will only deliver media keys. The default implementation handles these keys:

Parameters:
keyCode - The code of the media key.
event - The full key event.
Returns:
Indicate whether the key has been consumed. The default implementation always returns true. This only matters for keys being dispatched here from TransportController.dispatchKeyEvent, and determines whether the key continues on to its default key handling (which for media keys means being delivered to the current media remote control, which should be us).

onMediaButtonUp

public boolean onMediaButtonUp(int keyCode,
                               android.view.KeyEvent event)
Report that a media button has been released. This is like KeyEvent.Callback#onKeyUp(int, android.view.KeyEvent) but will only deliver media keys. The default implementation does nothing.

Parameters:
keyCode - The code of the media key.
event - The full key event.
Returns:
Indicate whether the key has been consumed. The default implementation always returns true. This only matters for keys being dispatched here from TransportController.dispatchKeyEvent, and determines whether the key continues on to its default key handling (which for media keys means being delivered to the current media remote control, which should be us).

onAudioFocusChange

public void onAudioFocusChange(int focusChange)
Report that audio focus has changed on the app. This only happens if you have indicated you have started playing with TransportController.startPlaying, which takes audio focus for you.

Parameters:
focusChange - The type of focus change, as per OnAudioFocusChangeListener.onAudioFocusChange. The default implementation will deliver a KeyEvent.KEYCODE_MEDIA_STOP when receiving android.media.AudioManager#AUDIOFOCUS_LOSS.