to top
Android APIs
public class

RemoteControlClient

extends Object
java.lang.Object
   ↳ android.media.RemoteControlClient

Class Overview

RemoteControlClient enables exposing information meant to be consumed by remote controls capable of displaying metadata, artwork and media transport control buttons.

A remote control client object is associated with a media button event receiver. This event receiver must have been previously registered with registerMediaButtonEventReceiver(ComponentName) before the RemoteControlClient can be registered through registerRemoteControlClient(RemoteControlClient).

Here is an example of creating a RemoteControlClient instance after registering a media button event receiver:

ComponentName myEventReceiver = new ComponentName(getPackageName(), MyRemoteControlEventReceiver.class.getName());
 AudioManager myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
 myAudioManager.registerMediaButtonEventReceiver(myEventReceiver);
 // build the PendingIntent for the remote control client
 Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
 mediaButtonIntent.setComponent(myEventReceiver);
 PendingIntent mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent, 0);
 // create and register the remote control client
 RemoteControlClient myRemoteControlClient = new RemoteControlClient(mediaPendingIntent);
 myAudioManager.registerRemoteControlClient(myRemoteControlClient);

Summary

Nested Classes
class RemoteControlClient.MetadataEditor Class used to modify metadata in a RemoteControlClient object. 
Constants
int FLAG_KEY_MEDIA_FAST_FORWARD Flag indicating a RemoteControlClient makes use of the "fast forward" media key.
int FLAG_KEY_MEDIA_NEXT Flag indicating a RemoteControlClient makes use of the "next" media key.
int FLAG_KEY_MEDIA_PAUSE Flag indicating a RemoteControlClient makes use of the "pause" media key.
int FLAG_KEY_MEDIA_PLAY Flag indicating a RemoteControlClient makes use of the "play" media key.
int FLAG_KEY_MEDIA_PLAY_PAUSE Flag indicating a RemoteControlClient makes use of the "play/pause" media key.
int FLAG_KEY_MEDIA_PREVIOUS Flag indicating a RemoteControlClient makes use of the "previous" media key.
int FLAG_KEY_MEDIA_REWIND Flag indicating a RemoteControlClient makes use of the "rewind" media key.
int FLAG_KEY_MEDIA_STOP Flag indicating a RemoteControlClient makes use of the "stop" media key.
int PLAYSTATE_BUFFERING Playback state of a RemoteControlClient which is buffering data to play before it can start or resume playback.
int PLAYSTATE_ERROR Playback state of a RemoteControlClient which cannot perform any playback related operation because of an internal error.
int PLAYSTATE_FAST_FORWARDING Playback state of a RemoteControlClient which is fast forwarding in the media it is currently playing.
int PLAYSTATE_PAUSED Playback state of a RemoteControlClient which is paused.
int PLAYSTATE_PLAYING Playback state of a RemoteControlClient which is playing media.
int PLAYSTATE_REWINDING Playback state of a RemoteControlClient which is fast rewinding in the media it is currently playing.
int PLAYSTATE_SKIPPING_BACKWARDS Playback state of a RemoteControlClient which is skipping back to the previous logical chapter (such as a song in a playlist) in the media it is currently playing.
int PLAYSTATE_SKIPPING_FORWARDS Playback state of a RemoteControlClient which is skipping to the next logical chapter (such as a song in a playlist) in the media it is currently playing.
int PLAYSTATE_STOPPED Playback state of a RemoteControlClient which is stopped.
Public Constructors
RemoteControlClient(PendingIntent mediaButtonIntent)
Class constructor.
RemoteControlClient(PendingIntent mediaButtonIntent, Looper looper)
Class constructor for a remote control client whose internal event handling happens on a user-provided Looper.
Public Methods
RemoteControlClient.MetadataEditor editMetadata(boolean startEmpty)
void setPlaybackState(int state)
Sets the current playback state.
void setTransportControlFlags(int transportControlFlags)
Sets the flags for the media transport control buttons that this client supports.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int FLAG_KEY_MEDIA_FAST_FORWARD

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "fast forward" media key.

Constant Value: 64 (0x00000040)

public static final int FLAG_KEY_MEDIA_NEXT

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "next" media key.

Constant Value: 128 (0x00000080)

public static final int FLAG_KEY_MEDIA_PAUSE

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "pause" media key.

Constant Value: 16 (0x00000010)

public static final int FLAG_KEY_MEDIA_PLAY

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "play" media key.

Constant Value: 4 (0x00000004)

public static final int FLAG_KEY_MEDIA_PLAY_PAUSE

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "play/pause" media key.

Constant Value: 8 (0x00000008)

public static final int FLAG_KEY_MEDIA_PREVIOUS

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "previous" media key.

Constant Value: 1 (0x00000001)

public static final int FLAG_KEY_MEDIA_REWIND

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "rewind" media key.

Constant Value: 2 (0x00000002)

public static final int FLAG_KEY_MEDIA_STOP

Added in API level 14

Flag indicating a RemoteControlClient makes use of the "stop" media key.

Constant Value: 32 (0x00000020)

public static final int PLAYSTATE_BUFFERING

Added in API level 14

Playback state of a RemoteControlClient which is buffering data to play before it can start or resume playback.

Constant Value: 8 (0x00000008)

public static final int PLAYSTATE_ERROR

Added in API level 14

Playback state of a RemoteControlClient which cannot perform any playback related operation because of an internal error. Examples of such situations are no network connectivity when attempting to stream data from a server, or expired user credentials when trying to play subscription-based content.

Constant Value: 9 (0x00000009)

public static final int PLAYSTATE_FAST_FORWARDING

Added in API level 14

Playback state of a RemoteControlClient which is fast forwarding in the media it is currently playing.

Constant Value: 4 (0x00000004)

public static final int PLAYSTATE_PAUSED

Added in API level 14

Playback state of a RemoteControlClient which is paused.

Constant Value: 2 (0x00000002)

public static final int PLAYSTATE_PLAYING

Added in API level 14

Playback state of a RemoteControlClient which is playing media.

Constant Value: 3 (0x00000003)

public static final int PLAYSTATE_REWINDING

Added in API level 14

Playback state of a RemoteControlClient which is fast rewinding in the media it is currently playing.

Constant Value: 5 (0x00000005)

public static final int PLAYSTATE_SKIPPING_BACKWARDS

Added in API level 14

Playback state of a RemoteControlClient which is skipping back to the previous logical chapter (such as a song in a playlist) in the media it is currently playing.

Constant Value: 7 (0x00000007)

public static final int PLAYSTATE_SKIPPING_FORWARDS

Added in API level 14

Playback state of a RemoteControlClient which is skipping to the next logical chapter (such as a song in a playlist) in the media it is currently playing.

Constant Value: 6 (0x00000006)

public static final int PLAYSTATE_STOPPED

Added in API level 14

Playback state of a RemoteControlClient which is stopped.

Constant Value: 1 (0x00000001)

Public Constructors

public RemoteControlClient (PendingIntent mediaButtonIntent)

Added in API level 14

Class constructor.

Parameters
mediaButtonIntent The intent that will be sent for the media button events sent by remote controls. This intent needs to have been constructed with the ACTION_MEDIA_BUTTON action, and have a component that will handle the intent (set with setComponent(ComponentName)) registered with registerMediaButtonEventReceiver(ComponentName) before this new RemoteControlClient can itself be registered with registerRemoteControlClient(RemoteControlClient).

public RemoteControlClient (PendingIntent mediaButtonIntent, Looper looper)

Added in API level 14

Class constructor for a remote control client whose internal event handling happens on a user-provided Looper.

Parameters
mediaButtonIntent The intent that will be sent for the media button events sent by remote controls. This intent needs to have been constructed with the ACTION_MEDIA_BUTTON action, and have a component that will handle the intent (set with setComponent(ComponentName)) registered with registerMediaButtonEventReceiver(ComponentName) before this new RemoteControlClient can itself be registered with registerRemoteControlClient(RemoteControlClient).
looper The Looper running the event loop.

Public Methods

public RemoteControlClient.MetadataEditor editMetadata (boolean startEmpty)

Added in API level 14
Parameters
startEmpty Set to false if you want the MetadataEditor to contain the metadata that was previously applied to the RemoteControlClient, or true if it is to be created empty.
Returns
  • a new MetadataEditor instance.

public void setPlaybackState (int state)

Added in API level 14

Sets the current playback state.

public void setTransportControlFlags (int transportControlFlags)

Added in API level 14

Sets the flags for the media transport control buttons that this client supports.