Most visited

Recently visited

Added in API level 14
Deprecated since API level 21

RemoteControlClient

public class RemoteControlClient
extends Object

java.lang.Object
   ↳ android.media.RemoteControlClient


该类在API级别21中已被弃用。
改为使用MediaSession

RemoteControlClient允许公开显示元数据,艺术品和媒体传输控制按钮的遥控器消耗的信息。

远程控制客户端对象与媒体按钮事件接收器相关联。 此事件接收器必须与先前已注册registerMediaButtonEventReceiver(ComponentName)前RemoteControlClient可以通过注册registerRemoteControlClient(RemoteControlClient)

以下是注册媒体按钮事件接收器后创建RemoteControlClient实例的示例:

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

此类已在API级别21中弃用。请改为使用MediaMetadataMediaSession

interface RemoteControlClient.OnGetPlaybackPositionListener

在查询媒体播放位置时调用回调的接口定义。

interface RemoteControlClient.OnMetadataUpdateListener

当一个元数据值已被更新时,将调用回调的接口定义。

interface RemoteControlClient.OnPlaybackPositionUpdateListener

要求更新媒体播放位置时调用回调的接口定义。

Constants

int FLAG_KEY_MEDIA_FAST_FORWARD

指示RemoteControlClient的标志利用“快进”媒体密钥。

int FLAG_KEY_MEDIA_NEXT

指示RemoteControlClient的标志利用“下一个”媒体密钥。

int FLAG_KEY_MEDIA_PAUSE

指示RemoteControlClient的标志利用“暂停”介质密钥。

int FLAG_KEY_MEDIA_PLAY

指示RemoteControlClient的标志利用“播放”媒体密钥。

int FLAG_KEY_MEDIA_PLAY_PAUSE

指示RemoteControlClient的标志利用“播放/暂停”媒体键。

int FLAG_KEY_MEDIA_POSITION_UPDATE

指示RemoteControlClient的标志可以通过 RemoteControlClient.OnPlaybackPositionUpdateListener接口在媒体播放位置接收更改。

int FLAG_KEY_MEDIA_PREVIOUS

表示RemoteControlClient的标志使用“前一个”媒体密钥。

int FLAG_KEY_MEDIA_RATING

指示RemoteControlClient支持评级的标志。

int FLAG_KEY_MEDIA_REWIND

指示RemoteControlClient的标志利用“倒带”介质密钥。

int FLAG_KEY_MEDIA_STOP

指示RemoteControlClient的标志利用“停止”介质密钥。

int PLAYSTATE_BUFFERING

播放远程控制客户端的状态,在启动或恢复播放之前缓冲要播放的数据。

int PLAYSTATE_ERROR

由于内部错误而无法执行任何播放相关操作的RemoteControlClient的播放状态。

int PLAYSTATE_FAST_FORWARDING

在当前正在播放的媒体中快速转发的RemoteControlClient的播放状态。

int PLAYSTATE_PAUSED

已暂停的RemoteControlClient的播放状态。

int PLAYSTATE_PLAYING

正在播放媒体的RemoteControlClient的播放状态。

int PLAYSTATE_REWINDING

在当前正在播放的媒体中快速倒带的RemoteControlClient的播放状态。

int PLAYSTATE_SKIPPING_BACKWARDS

回放当前正在播放的媒体中的前一个逻辑章节(例如播放列表中的歌曲)的RemoteControlClient的播放状态。

int PLAYSTATE_SKIPPING_FORWARDS

正在跳到下一个逻辑章节的RemoteControlClient的播放状态(例如播放列表中的歌曲)在其正在播放的媒体中。

int PLAYSTATE_STOPPED

播放停止的RemoteControlClient的状态。

Public constructors

RemoteControlClient(PendingIntent mediaButtonIntent)

类构造函数。

RemoteControlClient(PendingIntent mediaButtonIntent, Looper looper)

内部事件处理发生在用户提供的Looper上的远程控制客户端的类构造函数。

Public methods

RemoteControlClient.MetadataEditor editMetadata(boolean startEmpty)

创建一个 RemoteControlClient.MetadataEditor

MediaSession getMediaSession()

获取与此RCC关联的 MediaSession

void setMetadataUpdateListener(RemoteControlClient.OnMetadataUpdateListener l)

设置每当更新元数据时调用侦听器。

void setOnGetPlaybackPositionListener(RemoteControlClient.OnGetPlaybackPositionListener l)

设置每当需要媒体当前播放位置时调用监听器。

void setPlaybackPositionUpdateListener(RemoteControlClient.OnPlaybackPositionUpdateListener l)

设置每当请求更新媒体播放位置时调用侦听器。

void setPlaybackState(int state, long timeInMs, float playbackSpeed)

设置当前播放状态和当前播放速度的匹配媒体位置。

void setPlaybackState(int state)

设置当前的播放状态。

void setTransportControlFlags(int transportControlFlags)

设置此客户端支持的媒体传输控制按钮的标志。

Inherited methods

From class java.lang.Object

Constants

FLAG_KEY_MEDIA_FAST_FORWARD

Added in API level 14
int FLAG_KEY_MEDIA_FAST_FORWARD

指示RemoteControlClient的标志利用“快进”媒体密钥。

也可以看看:

常量值:64(0x00000040)

FLAG_KEY_MEDIA_NEXT

Added in API level 14
int FLAG_KEY_MEDIA_NEXT

指示RemoteControlClient的标志利用“下一个”媒体密钥。

也可以看看:

常量值:128(0x00000080)

FLAG_KEY_MEDIA_PAUSE

Added in API level 14
int FLAG_KEY_MEDIA_PAUSE

指示RemoteControlClient的标志利用“暂停”介质密钥。

也可以看看:

常量值:16(0x00000010)

FLAG_KEY_MEDIA_PLAY

Added in API level 14
int FLAG_KEY_MEDIA_PLAY

指示RemoteControlClient的标志利用“播放”媒体密钥。

也可以看看:

常量值:4(0x00000004)

FLAG_KEY_MEDIA_PLAY_PAUSE

Added in API level 14
int FLAG_KEY_MEDIA_PLAY_PAUSE

指示RemoteControlClient的标志利用“播放/暂停”媒体键。

也可以看看:

常量值:8(0x00000008)

FLAG_KEY_MEDIA_POSITION_UPDATE

Added in API level 18
int FLAG_KEY_MEDIA_POSITION_UPDATE

指示RemoteControlClient的标志可以通过RemoteControlClient.OnPlaybackPositionUpdateListener接口在媒体播放位置接收更改。 此标志必须设置为使显示RemoteControlClient信息的组件显示并让用户控制媒体播放位置。

也可以看看:

常量值:256(0x00000100)

FLAG_KEY_MEDIA_PREVIOUS

Added in API level 14
int FLAG_KEY_MEDIA_PREVIOUS

表示RemoteControlClient的标志使用“前一个”媒体密钥。

也可以看看:

常数值:1(0x00000001)

FLAG_KEY_MEDIA_RATING

Added in API level 19
int FLAG_KEY_MEDIA_RATING

指示RemoteControlClient支持评级的标志。 必须设置此标志,以便显示RemoteControlClient信息的组件显示评级信息,并且如果评级被声明为可编辑(通过使用RATING_KEY_BY_USER键调用addEditableKey(int) ),它将使用户能够对媒体进行评级,值为通过与setMetadataUpdateListener(OnMetadataUpdateListener)设置的接口接收。

也可以看看:

常量值:512(0x00000200)

FLAG_KEY_MEDIA_REWIND

Added in API level 14
int FLAG_KEY_MEDIA_REWIND

指示RemoteControlClient的标志利用“倒带”介质密钥。

也可以看看:

常量值:2(0x00000002)

FLAG_KEY_MEDIA_STOP

Added in API level 14
int FLAG_KEY_MEDIA_STOP

指示RemoteControlClient的标志利用“停止”介质密钥。

也可以看看:

常量值:32(0x00000020)

PLAYSTATE_BUFFERING

Added in API level 14
int PLAYSTATE_BUFFERING

播放远程控制客户端的状态,在启动或恢复播放之前缓冲要播放的数据。

也可以看看:

常量值:8(0x00000008)

PLAYSTATE_ERROR

Added in API level 14
int PLAYSTATE_ERROR

由于内部错误而无法执行任何播放相关操作的RemoteControlClient的播放状态。 这类情况的例子是,当尝试从服务器流式传输数据时没有网络连接,或者尝试播放基于订阅的内容时过期的用户凭据。

也可以看看:

常量值:9(0x00000009)

PLAYSTATE_FAST_FORWARDING

Added in API level 14
int PLAYSTATE_FAST_FORWARDING

在当前正在播放的媒体中快速转发的RemoteControlClient的播放状态。

也可以看看:

常量值:4(0x00000004)

PLAYSTATE_PAUSED

Added in API level 14
int PLAYSTATE_PAUSED

已暂停的RemoteControlClient的播放状态。

也可以看看:

常量值:2(0x00000002)

PLAYSTATE_PLAYING

Added in API level 14
int PLAYSTATE_PLAYING

正在播放媒体的RemoteControlClient的播放状态。

也可以看看:

常量值:3(0x00000003)

PLAYSTATE_REWINDING

Added in API level 14
int PLAYSTATE_REWINDING

在当前正在播放的媒体中快速倒带的RemoteControlClient的播放状态。

也可以看看:

常量值:5(0x00000005)

PLAYSTATE_SKIPPING_BACKWARDS

Added in API level 14
int PLAYSTATE_SKIPPING_BACKWARDS

回放当前正在播放的媒体中的前一个逻辑章节(例如播放列表中的歌曲)的RemoteControlClient的播放状态。

也可以看看:

常量值:7(0x00000007)

PLAYSTATE_SKIPPING_FORWARDS

Added in API level 14
int PLAYSTATE_SKIPPING_FORWARDS

正在跳到下一个逻辑章节的RemoteControlClient的播放状态(例如播放列表中的歌曲)在其正在播放的媒体中。

也可以看看:

常数值:6(0x00000006)

PLAYSTATE_STOPPED

Added in API level 14
int PLAYSTATE_STOPPED

播放停止的RemoteControlClient的状态。

也可以看看:

常数值:1(0x00000001)

Public constructors

RemoteControlClient

Added in API level 14
RemoteControlClient (PendingIntent mediaButtonIntent)

类构造函数。

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 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).

也可以看看:

RemoteControlClient

Added in API level 14
RemoteControlClient (PendingIntent mediaButtonIntent, 
                Looper looper)

内部事件处理发生在用户提供的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 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 Looper: The Looper running the event loop.

也可以看看:

Public methods

editMetadata

Added in API level 14
RemoteControlClient.MetadataEditor editMetadata (boolean startEmpty)

创建一个 RemoteControlClient.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.
Returns
RemoteControlClient.MetadataEditor a new MetadataEditor instance.

getMediaSession

Added in API level 21
MediaSession getMediaSession ()

获取与此RCC关联的MediaSession 它只会在registerRemoteControlClient(RemoteControlClient)注册时进行registerRemoteControlClient(RemoteControlClient) 返回的会话不应该直接由应用程序修改,但可以与需要会话的其他API一起使用。

Returns
MediaSession A media session object or null.

setMetadataUpdateListener

Added in API level 19
void setMetadataUpdateListener (RemoteControlClient.OnMetadataUpdateListener l)

设置每当更新元数据时调用侦听器。 新元数据值将在与创建RemoteControlClient的线程相同的线程中接收。

Parameters
l RemoteControlClient.OnMetadataUpdateListener: the metadata update listener

setOnGetPlaybackPositionListener

Added in API level 18
void setOnGetPlaybackPositionListener (RemoteControlClient.OnGetPlaybackPositionListener l)

设置每当需要媒体当前播放位置时调用监听器。 查询将在与创建RemoteControlClient的线程相同的线程中接收。

Parameters
l RemoteControlClient.OnGetPlaybackPositionListener: the listener to be called to retrieve the playback position

setPlaybackPositionUpdateListener

Added in API level 18
void setPlaybackPositionUpdateListener (RemoteControlClient.OnPlaybackPositionUpdateListener l)

设置每当请求更新媒体播放位置时调用侦听器。 通知将在与创建RemoteControlClient的线程相同的线程中接收。

Parameters
l RemoteControlClient.OnPlaybackPositionUpdateListener: the position update listener to be called

setPlaybackState

Added in API level 18
void setPlaybackState (int state, 
                long timeInMs, 
                float playbackSpeed)

设置当前播放状态和当前播放速度的匹配媒体位置。

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 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).

setPlaybackState

Added in API level 14
void setPlaybackState (int 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.

setTransportControlFlags

Added in API level 14
void setTransportControlFlags (int transportControlFlags)

设置此客户端支持的媒体传输控制按钮的标志。

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.

Hooray!