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);
Nested classes |
|
---|---|
class |
RemoteControlClient.MetadataEditor 此类已在API级别21中弃用。请改为使用 |
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的标志可以通过 |
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) |
MediaSession |
getMediaSession() 获取与此RCC关联的 |
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
|
int FLAG_KEY_MEDIA_FAST_FORWARD
指示RemoteControlClient的标志利用“快进”媒体密钥。
常量值:64(0x00000040)
int FLAG_KEY_MEDIA_NEXT
指示RemoteControlClient的标志利用“下一个”媒体密钥。
常量值:128(0x00000080)
int FLAG_KEY_MEDIA_PAUSE
指示RemoteControlClient的标志利用“暂停”介质密钥。
常量值:16(0x00000010)
int FLAG_KEY_MEDIA_PLAY
指示RemoteControlClient的标志利用“播放”媒体密钥。
常量值:4(0x00000004)
int FLAG_KEY_MEDIA_PLAY_PAUSE
指示RemoteControlClient的标志利用“播放/暂停”媒体键。
常量值:8(0x00000008)
int FLAG_KEY_MEDIA_POSITION_UPDATE
指示RemoteControlClient的标志可以通过RemoteControlClient.OnPlaybackPositionUpdateListener
接口在媒体播放位置接收更改。 此标志必须设置为使显示RemoteControlClient信息的组件显示并让用户控制媒体播放位置。
也可以看看:
常量值:256(0x00000100)
int FLAG_KEY_MEDIA_PREVIOUS
表示RemoteControlClient的标志使用“前一个”媒体密钥。
常数值:1(0x00000001)
int FLAG_KEY_MEDIA_RATING
指示RemoteControlClient支持评级的标志。 必须设置此标志,以便显示RemoteControlClient信息的组件显示评级信息,并且如果评级被声明为可编辑(通过使用RATING_KEY_BY_USER
键调用addEditableKey(int)
),它将使用户能够对媒体进行评级,值为通过与setMetadataUpdateListener(OnMetadataUpdateListener)
设置的接口接收。
常量值:512(0x00000200)
int FLAG_KEY_MEDIA_REWIND
指示RemoteControlClient的标志利用“倒带”介质密钥。
常量值:2(0x00000002)
int FLAG_KEY_MEDIA_STOP
指示RemoteControlClient的标志利用“停止”介质密钥。
常量值:32(0x00000020)
int PLAYSTATE_BUFFERING
播放远程控制客户端的状态,在启动或恢复播放之前缓冲要播放的数据。
也可以看看:
常量值:8(0x00000008)
int PLAYSTATE_ERROR
由于内部错误而无法执行任何播放相关操作的RemoteControlClient的播放状态。 这类情况的例子是,当尝试从服务器流式传输数据时没有网络连接,或者尝试播放基于订阅的内容时过期的用户凭据。
也可以看看:
常量值:9(0x00000009)
int PLAYSTATE_FAST_FORWARDING
在当前正在播放的媒体中快速转发的RemoteControlClient的播放状态。
也可以看看:
常量值:4(0x00000004)
int PLAYSTATE_PAUSED
已暂停的RemoteControlClient的播放状态。
也可以看看:
常量值:2(0x00000002)
int PLAYSTATE_PLAYING
正在播放媒体的RemoteControlClient的播放状态。
也可以看看:
常量值:3(0x00000003)
int PLAYSTATE_REWINDING
在当前正在播放的媒体中快速倒带的RemoteControlClient的播放状态。
也可以看看:
常量值:5(0x00000005)
int PLAYSTATE_SKIPPING_BACKWARDS
回放当前正在播放的媒体中的前一个逻辑章节(例如播放列表中的歌曲)的RemoteControlClient的播放状态。
也可以看看:
常量值:7(0x00000007)
int PLAYSTATE_SKIPPING_FORWARDS
正在跳到下一个逻辑章节的RemoteControlClient的播放状态(例如播放列表中的歌曲)在其正在播放的媒体中。
也可以看看:
常数值:6(0x00000006)
int PLAYSTATE_STOPPED
播放停止的RemoteControlClient的状态。
也可以看看:
常数值:1(0x00000001)
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 (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. |
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. |
MediaSession getMediaSession ()
获取与此RCC关联的MediaSession
。 它只会在registerRemoteControlClient(RemoteControlClient)
注册时进行registerRemoteControlClient(RemoteControlClient)
。 返回的会话不应该直接由应用程序修改,但可以与需要会话的其他API一起使用。
Returns | |
---|---|
MediaSession |
A media session object or null. |
void setMetadataUpdateListener (RemoteControlClient.OnMetadataUpdateListener l)
设置每当更新元数据时调用侦听器。 新元数据值将在与创建RemoteControlClient的线程相同的线程中接收。
Parameters | |
---|---|
l |
RemoteControlClient.OnMetadataUpdateListener : the metadata update listener |
void setOnGetPlaybackPositionListener (RemoteControlClient.OnGetPlaybackPositionListener l)
设置每当需要媒体当前播放位置时调用监听器。 查询将在与创建RemoteControlClient的线程相同的线程中接收。
Parameters | |
---|---|
l |
RemoteControlClient.OnGetPlaybackPositionListener : the listener to be called to retrieve the playback position |
void setPlaybackPositionUpdateListener (RemoteControlClient.OnPlaybackPositionUpdateListener l)
设置每当请求更新媒体播放位置时调用侦听器。 通知将在与创建RemoteControlClient的线程相同的线程中接收。
Parameters | |
---|---|
l |
RemoteControlClient.OnPlaybackPositionUpdateListener : the position update listener to be called |
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 ). |
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 . |
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 . |