Zia*_*abi 5 android mediabrowserservicecompat mediabrowser
我正在尝试向其他媒体应用公开媒体项目,这些应用可以通过我的MediaBrowserServiceCompat服务浏览我的应用内容。在我的onLoadChildren方法中,我正在构建 MediaBrowserCompat.MediaItem一个MediaDescriptionCompat包含Bundle一些我需要播放该项目的额外内容的 。
public class Service extends MediaBrowserServiceCompat {
...
@Override
public void onLoadChildren(@NonNull String parentId, @NonNull Result<List<MediaBrowserCompat.MediaItem>> result) {
val bundle = Bundle().apply {
putString("extra", "some value")
}
MediaDescriptionCompat description = new MediaDescriptionCompat.Builder()
.setMediaId(mediaId)
.setExtras(bundle)
.setTitle("title")
.setSubtitle("subtitle")
.setIconUri(uri)
.build();
MediaBrowserCompat.MediaItem item = new MediaBrowserCompat.MediaItem(description, MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
val items = ArrayList<MediaBrowserCompat.MediaItem>()
items.add(item)
result.sendResult(items)
}
Run Code Online (Sandbox Code Playgroud)
因此,在onPlayFromMediaId(String mediaId, Bundle extras)用户单击该项目时收到的回调中,我得到了正确的结果,mediaId但这extras是一个空包。
private class MediaSessionCallback extends MediaSessionCompat.Callback {
...
@Override
public void onPlayFromMediaId(String mediaId, Bundle extras) {
super.onPlayFromMediaId(mediaId, extras);
//here extras is empty
}
Run Code Online (Sandbox Code Playgroud)
我确定 MediaItem 在Result<List<MediaBrowserCompat.MediaItem>>结果中发送时有额外的包,onLoadChildren但我不确定为什么它返回空。什么会导致这样的问题?
谢谢!
我认为你实际上并没有得到捆绑包。您设置了参数 Bundle extra 但我认为该捆绑包中实际上没有任何内容
通常,我过去在创建捆绑包以检索它之后是如何做到的,会做类似这样的事情
创建一个变量来存储接收到的
val extra:String
Run Code Online (Sandbox Code Playgroud)
然后使用该字符串变量来获取您创建的包
extra = bundle.getstring("extra")
Run Code Online (Sandbox Code Playgroud)
其中“extra”与您在顶部创建的捆绑包的密钥相匹配,您几乎只有实际上没有从 .getstring("extra") 会得到的捆绑包中获取字符串
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |