MediaController命令的一些示例是什么?

时间:2019-11-27 17:06:46

标签: android mediacontroller android-mediasession notification-listener

在查看MediaController文档时,我注意到有一个名为sendCommand(...)的函数,它需要三个参数:

  • 命令:字符串;
  • args:捆绑;
  • cb:ResultReceiver。

但是如何使用该方法的示例却找不到找不到


有哪些可用的MediaController#sendCommand(...)默认命令以及可接受的参数键和值类型?


例如,查看PlaybackState文档,我们可以找到一个名为ACTION_PLAY_FROM_MEDIA_ID的常量,其描述如下:

  

表明此会话支持通过媒体ID播放命令

这使我们认为MediaController#sendCommand(...)可以通过向其发送媒体ID来更改MediaSession的当前媒体。怎么办呢?
众所周知,Google Play音乐应用的MediaController通过MediaController#getQueue函数共享其媒体队列。

1 个答案:

答案 0 :(得分:0)

您可以在MediaControllerCompat中找到Commands常量。

它们实际上是:

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);
    }
相关问题