首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击项目时接收空捆绑的MediaBrowserServiceCompat

点击项目时接收空捆绑的MediaBrowserServiceCompat
EN

Stack Overflow用户
提问于 2019-07-22 21:20:53
回答 2查看 323关注 0票数 6

我正在尝试向其他媒体应用程序公开媒体项目,这些应用程序可以通过我的MediaBrowserServiceCompat服务浏览我的应用程序的内容。在我的onLoadChildren方法中,我使用一个MediaDescriptionCompat构造MediaBrowserCompat.MediaItem,其中包含一个Bundle,它有一些播放项目所需的额外内容。

代码语言:javascript
复制
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)
    }

因此,在用户单击项目时得到的onPlayFromMediaId(String mediaId, Bundle extras)回调中,我得到了正确的mediaId,但extras是一个空包。

代码语言:javascript
复制
    private class MediaSessionCallback extends MediaSessionCompat.Callback {
     ...
        @Override
        public void onPlayFromMediaId(String mediaId, Bundle extras) {
            super.onPlayFromMediaId(mediaId, extras);
            //here extras is empty
        }

我确信MediaItem在以onLoadChildren格式的Result<List<MediaBrowserCompat.MediaItem>>结果中发送时会有额外的捆绑包,但我不确定为什么它会被返回为空。是什么导致了这样的问题?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-08-01 03:46:29

我不认为你真的得到了捆绑包。您额外设置了参数Bundle,但我认为该包中实际上没有任何内容

通常,在创建包以检索它之后,我过去是如何做的,会做这样的事情

创建一个变量来存储接收到的

代码语言:javascript
复制
val extra:String

然后使用该字符串变量获取您创建的包

代码语言:javascript
复制
extra = bundle.getstring("extra")

哪个"extra“与您在顶部创建的捆绑包的键相匹配,而您实际上并没有从捆绑包中获得.getstring("extra")将获得的字符串

票数 0
EN

Stack Overflow用户

发布于 2020-05-25 20:48:02

有同样的问题,我找不到MediaDescriptionCompat的附加组件和onPlayFromMediaId的附加组件之间的关系。所以"mediaId“-这只是你从MediaItem获得的信息,你需要把你所有的数据放在这里onPlayFromMediaId。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57147007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档