RemoteControlClient
open classRemoteControlClient
kotlin.Any | |
↳ | android.media.RemoteControlClient |
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 AudioManager#registerMediaButtonEventReceiver(ComponentName)
before the RemoteControlClient can be registered through AudioManager#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, PendingIntent.FLAG_MUTABLE_UNAUDITED); // create and register the remote control client RemoteControlClient myRemoteControlClient = new RemoteControlClient(mediaPendingIntent); myAudioManager.registerRemoteControlClient(myRemoteControlClient);
Summary
Nested classes | |
---|---|
open |
Class used to modify metadata in a |
abstract |
Interface definition for a callback to be invoked when the media playback position is queried. |
abstract |
Interface definition for a callback to be invoked when one of the metadata values has been updated. |
abstract |
Interface definition for a callback to be invoked when the media playback position is requested to be updated. |
Constants | |
---|---|
static Int |
Flag indicating a RemoteControlClient makes use of the "fast forward" media key. |
static Int |
Flag indicating a RemoteControlClient makes use of the "next" media key. |
static Int |
Flag indicating a RemoteControlClient makes use of the "pause" media key. |
static Int |
Flag indicating a RemoteControlClient makes use of the "play" media key. |
static Int |
Flag indicating a RemoteControlClient makes use of the "play/pause" media key. |
static Int |
Flag indicating a RemoteControlClient can receive changes in the media playback position through the |
static Int |
Flag indicating a RemoteControlClient makes use of the "previous" media key. |
static Int |
Flag indicating a RemoteControlClient supports ratings. |
static Int |
Flag indicating a RemoteControlClient makes use of the "rewind" media key. |
static Int |
Flag indicating a RemoteControlClient makes use of the "stop" media key. |
static Int |
Playback state of a RemoteControlClient which is buffering data to play before it can start or resume playback. |
static Int |
Playback state of a RemoteControlClient which cannot perform any playback related operation because of an internal error. |
static Int |
Playback state of a RemoteControlClient which is fast forwarding in the media it is currently playing. |
static Int |
Playback state of a RemoteControlClient which is paused. |
static Int |
Playback state of a RemoteControlClient which is playing media. |
static Int |
Playback state of a RemoteControlClient which is fast rewinding in the media it is currently playing. |
static Int |
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. |
static Int |
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. |
static Int |
Playback state of a RemoteControlClient which is stopped. |
Public constructors | |
---|---|
RemoteControlClient(mediaButtonIntent: PendingIntent!) Class constructor. |
|
RemoteControlClient(mediaButtonIntent: PendingIntent!, looper: Looper!) Class constructor for a remote control client whose internal event handling happens on a user-provided Looper. |
Public methods | |
---|---|
open RemoteControlClient.MetadataEditor! |
editMetadata(startEmpty: Boolean) Creates a |
open MediaSession! |
Get a |
open Unit |
Sets the listener to be called whenever the metadata is updated. |
open Unit |
Sets the listener to be called whenever the media current playback position is needed. |
open Unit |
Sets the listener to be called whenever the media playback position is requested to be updated. |
open Unit |
setPlaybackState(state: Int) Sets the current playback state. |
open Unit |
setPlaybackState(state: Int, timeInMs: Long, playbackSpeed: Float) Sets the current playback state and the matching media position for the current playback speed. |
open Unit |
setTransportControlFlags(transportControlFlags: Int) Sets the flags for the media transport control buttons that this client supports. |
Constants
FLAG_KEY_MEDIA_FAST_FORWARD
static valFLAG_KEY_MEDIA_FAST_FORWARD: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "fast forward" media key.
Value: 64
FLAG_KEY_MEDIA_NEXT
static valFLAG_KEY_MEDIA_NEXT: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "next" media key.
Value: 128
FLAG_KEY_MEDIA_PAUSE
static valFLAG_KEY_MEDIA_PAUSE: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "pause" media key.
Value: 16
FLAG_KEY_MEDIA_PLAY
static valFLAG_KEY_MEDIA_PLAY: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "play" media key.
Value: 4
FLAG_KEY_MEDIA_PLAY_PAUSE
static valFLAG_KEY_MEDIA_PLAY_PAUSE: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "play/pause" media key.
Value: 8
FLAG_KEY_MEDIA_POSITION_UPDATE
static valFLAG_KEY_MEDIA_POSITION_UPDATE: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient can receive changes in the media playback position through the OnPlaybackPositionUpdateListener
interface. This flag must be set in order for components that display the RemoteControlClient information, to display and let the user control media playback position.
Value: 256
FLAG_KEY_MEDIA_PREVIOUS
static valFLAG_KEY_MEDIA_PREVIOUS: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "previous" media key.
Value: 1
FLAG_KEY_MEDIA_RATING
static valFLAG_KEY_MEDIA_RATING: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient supports ratings. This flag must be set in order for components that display the RemoteControlClient information, to display ratings information, and, if ratings are declared editable (by calling MediaMetadataEditor#addEditableKey(int)
with the MediaMetadataEditor#RATING_KEY_BY_USER
key), it will enable the user to rate the media, with values being received through the interface set with setMetadataUpdateListener(android.media.RemoteControlClient.OnMetadataUpdateListener)
.
Value: 512
See Also
FLAG_KEY_MEDIA_REWIND
static valFLAG_KEY_MEDIA_REWIND: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "rewind" media key.
Value: 2
FLAG_KEY_MEDIA_STOP
static valFLAG_KEY_MEDIA_STOP: Int
Deprecated: Deprecated in Java.
Flag indicating a RemoteControlClient makes use of the "stop" media key.
Value: 32
PLAYSTATE_BUFFERING
static valPLAYSTATE_BUFFERING: Int
Deprecated: Deprecated in Java.
Playback state of a RemoteControlClient which is buffering data to play before it can start or resume playback.
Value: 8
See Also
PLAYSTATE_ERROR
static valPLAYSTATE_ERROR: Int
Deprecated: Deprecated in Java.
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.
Value: 9
See Also
PLAYSTATE_FAST_FORWARDING
static valPLAYSTATE_FAST_FORWARDING: Int
Deprecated: Deprecated in Java.
Playback state of a RemoteControlClient which is fast forwarding in the media it is currently playing.
Value: 4
See Also
PLAYSTATE_PAUSED
static valPLAYSTATE_PAUSED: Int
Deprecated: Deprecated in Java.
Playback state of a RemoteControlClient which is paused.
Value: 2
See Also
PLAYSTATE_PLAYING
static valPLAYSTATE_PLAYING: Int
Deprecated: Deprecated in Java.
Playback state of a RemoteControlClient which is playing media.
Value: 3
See Also
PLAYSTATE_REWINDING
static valPLAYSTATE_REWINDING: Int
Deprecated: Deprecated in Java.
Playback state of a RemoteControlClient which is fast rewinding in the media it is currently playing.
Value: 5
See Also
PLAYSTATE_SKIPPING_BACKWARDS
static valPLAYSTATE_SKIPPING_BACKWARDS: Int
Deprecated: Deprecated in Java.
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.
Value: 7
See Also
PLAYSTATE_SKIPPING_FORWARDS
static valPLAYSTATE_SKIPPING_FORWARDS: Int
Deprecated: Deprecated in Java.
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.
Value: 6
See Also
PLAYSTATE_STOPPED
static valPLAYSTATE_STOPPED: Int
Deprecated: Deprecated in Java.
Playback state of a RemoteControlClient which is stopped.
Value: 1
See Also
Public constructors
RemoteControlClient
RemoteControlClient(mediaButtonIntent: PendingIntent!)
Class constructor.
Parameters | |
---|---|
mediaButtonIntent |
PendingIntent!: The intent that will be sent for the media button events sent by remote controls. This intent needs to have been constructed with the Intent#ACTION_MEDIA_BUTTON action, and have a component that will handle the intent (set with Intent#setComponent(ComponentName) ) registered with AudioManager#registerMediaButtonEventReceiver(ComponentName) before this new RemoteControlClient can itself be registered with AudioManager#registerRemoteControlClient(RemoteControlClient) . |
RemoteControlClient
RemoteControlClient(
mediaButtonIntent: PendingIntent!,
looper: Looper!)
Class constructor for a remote control client whose internal event handling happens on a user-provided Looper.
Parameters | |
---|---|
mediaButtonIntent |
PendingIntent!: The intent that will be sent for the media button events sent by remote controls. This intent needs to have been constructed with the Intent#ACTION_MEDIA_BUTTON action, and have a component that will handle the intent (set with Intent#setComponent(ComponentName) ) registered with AudioManager#registerMediaButtonEventReceiver(ComponentName) before this new RemoteControlClient can itself be registered with AudioManager#registerRemoteControlClient(RemoteControlClient) . |
looper |
Looper!: The Looper running the event loop. |
Public methods
editMetadata
open funeditMetadata(startEmpty: Boolean): RemoteControlClient.MetadataEditor!
Deprecated: Deprecated in Java.
Creates a MetadataEditor
.
Parameters | |
---|---|
startEmpty |
Boolean: 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. |
Return | |
---|---|
RemoteControlClient.MetadataEditor! |
a new MetadataEditor instance. |
getMediaSession
open fungetMediaSession(): MediaSession!
Deprecated: Deprecated in Java.
Get a MediaSession
associated with this RCC. It will only have a session while it is registered with AudioManager#registerRemoteControlClient
. The session returned should not be modified directly by the application but may be used with other APIs that require a session.
Return | |
---|---|
MediaSession! |
A media session object or null. |
setMetadataUpdateListener
open funsetMetadataUpdateListener(l: RemoteControlClient.OnMetadataUpdateListener!): Unit
Deprecated: Deprecated in Java.
Sets the listener to be called whenever the metadata is updated. New metadata values will be received in the same thread as the one in which RemoteControlClient was created.
Parameters | |
---|---|
l |
RemoteControlClient.OnMetadataUpdateListener!: the metadata update listener |
setOnGetPlaybackPositionListener
open funsetOnGetPlaybackPositionListener(l: RemoteControlClient.OnGetPlaybackPositionListener!): Unit
Deprecated: Deprecated in Java.
Sets the listener to be called whenever the media current playback position is needed. Queries will be received in the same thread as the one in which RemoteControlClient was created.
Parameters | |
---|---|
l |
RemoteControlClient.OnGetPlaybackPositionListener!: the listener to be called to retrieve the playback position |
setPlaybackPositionUpdateListener
open funsetPlaybackPositionUpdateListener(l: RemoteControlClient.OnPlaybackPositionUpdateListener!): Unit
Deprecated: Deprecated in Java.
Sets the listener to be called whenever the media playback position is requested to be updated. Notifications will be received in the same thread as the one in which RemoteControlClient was created.
Parameters | |
---|---|
l |
RemoteControlClient.OnPlaybackPositionUpdateListener!: the position update listener to be called |
setPlaybackState
open funsetPlaybackState(state: Int): Unit
Deprecated: Deprecated in Java.
Sets the current playback state.
Parameters | |
---|---|
state |
Int: The current playback state, one of the following values: PLAYSTATE_STOPPED , PLAYSTATE_PAUSED , PLAYSTATE_PLAYING , PLAYSTATE_FAST_FORWARDING , PLAYSTATE_REWINDING , PLAYSTATE_SKIPPING_FORWARDS , PLAYSTATE_SKIPPING_BACKWARDS , PLAYSTATE_BUFFERING , PLAYSTATE_ERROR . |
setPlaybackState
open funsetPlaybackState(
state: Int,
timeInMs: Long,
playbackSpeed: Float
): Unit
Deprecated: Deprecated in Java.
Sets the current playback state and the matching media position for the current playback speed.
Parameters | |
---|---|
state |
Int: The current playback state, one of the following values: PLAYSTATE_STOPPED , PLAYSTATE_PAUSED , PLAYSTATE_PLAYING , PLAYSTATE_FAST_FORWARDING , PLAYSTATE_REWINDING , PLAYSTATE_SKIPPING_FORWARDS , PLAYSTATE_SKIPPING_BACKWARDS , PLAYSTATE_BUFFERING , PLAYSTATE_ERROR . |
timeInMs |
Long: a 0 or positive value for the current media position expressed in ms (same unit as for when sending the media duration, if applicable, with android.media.MediaMetadataRetriever#METADATA_KEY_DURATION in the RemoteControlClient.MetadataEditor ). Negative values imply that position is not known (e.g. listening to a live stream of a radio) or not applicable (e.g. when state is PLAYSTATE_BUFFERING and nothing had played yet). |
playbackSpeed |
Float: a value expressed as a ratio of 1x playback: 1.0f is normal playback, 2.0f is 2x, 0.5f is half-speed, -2.0f is rewind at 2x speed. 0.0f means nothing is playing (e.g. when state is PLAYSTATE_ERROR ). |
setTransportControlFlags
open funsetTransportControlFlags(transportControlFlags: Int): Unit
Deprecated: Deprecated in Java.
Sets the flags for the media transport control buttons that this client supports.
Parameters | |
---|---|
transportControlFlags |
Int: A combination of the following flags: FLAG_KEY_MEDIA_PREVIOUS , FLAG_KEY_MEDIA_REWIND , FLAG_KEY_MEDIA_PLAY , FLAG_KEY_MEDIA_PLAY_PAUSE , FLAG_KEY_MEDIA_PAUSE , FLAG_KEY_MEDIA_STOP , FLAG_KEY_MEDIA_FAST_FORWARD , FLAG_KEY_MEDIA_NEXT , FLAG_KEY_MEDIA_POSITION_UPDATE , FLAG_KEY_MEDIA_RATING . |