Android MediaController命令的一些示例是什么?
查看文档时,我注意到有一个名为的函数,它需要三个参数:Android MediaController命令的一些示例是什么?,android,mediacontroller,android-mediasession,notification-listener,Android,Mediacontroller,Android Mediasession,Notification Listener,查看文档时,我注意到有一个名为的函数,它需要三个参数: 命令:字符串 args:束 cb:ResultReceiver 但如何使用这种方法的例子却无处可寻 可用的MediaController\sendCommand(…)默认命令和可接受的参数键和值类型是什么? 例如,检查文档,我们可以找到一个名为的常量,其描述如下: 指示此会话支持从媒体id播放命令 这让我们想到,MediaController\sendCommand(…)可以通过发送媒体ID来更改MediaSession的当前媒体。
- 命令:字符串李>
- args:束李>
- cb:ResultReceiver李>
可用的
MediaController\sendCommand(…)
默认命令和可接受的参数键和值类型是什么?
例如,检查文档,我们可以找到一个名为的常量,其描述如下: 指示此会话支持从媒体id播放命令 这让我们想到,
MediaController\sendCommand(…)
可以通过发送媒体ID来更改MediaSession
的当前媒体。我们如何做?众所周知,Google Play Music应用程序的MediaController通过函数共享其媒体队列。您可以在MediaController Compat中找到命令常量 它们实际上是:
public static final String COMMAND_GET_EXTRA_BINDER =
"android.support.v4.media.session.command.GET_EXTRA_BINDER";
public static final String COMMAND_ADD_QUEUE_ITEM =
"android.support.v4.media.session.command.ADD_QUEUE_ITEM";
public static final String COMMAND_ADD_QUEUE_ITEM_AT =
"android.support.v4.media.session.command.ADD_QUEUE_ITEM_AT";
public static final String COMMAND_REMOVE_QUEUE_ITEM =
"android.support.v4.media.session.command.REMOVE_QUEUE_ITEM";
public static final String COMMAND_REMOVE_QUEUE_ITEM_AT =
"android.support.v4.media.session.command.REMOVE_QUEUE_ITEM_AT";
public static final String COMMAND_ARGUMENT_MEDIA_DESCRIPTION =
"android.support.v4.media.session.command.ARGUMENT_MEDIA_DESCRIPTION";
public static final String COMMAND_ARGUMENT_INDEX =
"android.support.v4.media.session.command.ARGUMENT_INDEX";
对于一些基本用法示例,您可以查看其方法,如:
@Override
public void removeQueueItem(MediaDescriptionCompat description) {
long flags = getFlags();
if ((flags & MediaSessionCompat.FLAG_HANDLES_QUEUE_COMMANDS) == 0) {
throw new UnsupportedOperationException(
"This session doesn't support queue management operations");
}
Bundle params = new Bundle();
params.putParcelable(COMMAND_ARGUMENT_MEDIA_DESCRIPTION, description);
sendCommand(COMMAND_REMOVE_QUEUE_ITEM, params, null);
}
您列出的常量似乎用
@hide
注释标记为隐藏:是的,它们是。如果需要,请查看MediaSessionConnector.QueueEditor。您可以看到,如果使用命令\U REMOVE\U QUEUE\U ITEM,将调用QueueEditor.onRemoveQueueItem。如果您使用自己的命令,那么将调用QueueEditor.onCommand。这些只是一些内置的例子。如果你想使用onCommand,你需要使用你自己的命令,而不是那些。