如何设置 MediaSession.QueueItem 的媒体路径

How to set a MediaSession.QueueItem's Media Path

我正在构建一个 MediaSession.QueueItems 的 ListArray,目的是将该列表作为播放列表推送到 MediaSession。

我注意到 MediaDescription.Builder 中有一种方法可以为项目指定 MediaUri,但在 API 23 之前不可用。

问题是:

  1. 如何将媒体文件的路径关联到 MediaSession.QueueItem?
  2. 在 API v21 之后和 API v23 之前做了什么?

我在这个例子中找到了答案:https://github.com/emuneee/MarshmallowFM

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    mMediaController.getTransportControls().playFromUri(uri, null);
} else {
    Bundle bundle = new Bundle();
    bundle.putParcelable(AudioPlayerService.PARAM_TRACK_URI, uri);
    mMediaController.getTransportControls().playFromSearch("", bundle);
}

只需搜索与 URI 完全匹配的内容,它的行为实际上是一样的。