我正在构建 MediaSession.QueueItems 的 ListArray,目的是将列表作为播放列表推送到 MediaSession。
我注意到在 MediaDescription.Builder 中有一种为项目指定 MediaUri 的方法,但在 API 23 之前它不可用。
问题是:
- 如何将媒体文件的路径关联到 MediaSession.QueueItem?
- 在 API v21 之后和 API v23 之前做了什么?
我正在构建 MediaSession.QueueItems 的 ListArray,目的是将列表作为播放列表推送到 MediaSession。
我注意到在 MediaDescription.Builder 中有一种为项目指定 MediaUri 的方法,但在 API 23 之前它不可用。
问题是:
我在这个例子中找到了答案: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 的完全匹配项,它的行为实际上是相同的。