【问题标题】:Android Automotive OS not displaying playable MediaItem'sAndroid Automotive OS 不显示可播放的 MediaItem
【发布时间】:2020-09-05 06:17:44
【问题描述】:

我有一个通用的 Android Automotive OS 模拟器正在运行。我创建了一个示例汽车应用程序,该应用程序应在主可浏览根目录中显示 6 首歌曲。我MediaBrowserService中的代码sn-p是:

    override fun onLoadChildren(parentId: String, result: Result<MutableList<MediaItem>>) {
        val mediaList = ArrayList<MediaItem>()

        if (parentId == "root") {
            AUTO_SOURCES.forEach { mediaList.add(buildMediaItem(it.sourceId, it.sourceName)) }
        }

        result.sendResult(mediaList)
    }

    private fun buildMediaItem(mediaId: String, title: String): MediaItem {
        val desc = MediaDescriptionCompat.Builder()
            .setMediaId(mediaId)
            .setTitle(title)
            .setIconUri(mediaId.asAlbumArtContentUri())
            .build()

        return MediaItem(desc, MediaItem.FLAG_PLAYABLE)
    }

我看到onLoadChildren 被调用并且对应的sendResult 但是永远不会显示可播放的媒体项目。如果我将它们更改为MediaItem.FLAG_BROWSABLE,它们会正确显示。知道我做错了什么吗?

【问题讨论】:

  • 看起来该标志是强制性的。例如。见:androidxref.com/9.0.0_r3/xref/packages/apps/Car/…
  • @AndreySamoilov 感谢您的回复,但您能详细说明一下吗?我正在添加 MediaItem.FLAG_PLAYABLE 标志。你是不是要换一个?
  • 我的意思是 MediaItem.FLAG_BROWSABLE 看起来像是必须浏览的。我已经查看了使用这两个标志(MediaItem.FLAG_BROWSABLE 和 MediaItem.FLAG_PLAYABLE)的 AOSP。请参阅androidxref.com/9.0.0_r3/xref/frameworks/base/media/java/… 根据这些评论,我认为:FLAG_BROWSABLE 应该用于 BrowserCallback。 MediaItem.FLAG_PLAYABLE 应该用于 MediaPlayback 中的查询。

标签: android android-auto android-automotive mediabrowserservice


【解决方案1】:

您的构建器需要调用 setMediaURI

【讨论】:

  • 你是在问问题还是在反问?
猜你喜欢
  • 2020-03-08
  • 2021-08-06
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
相关资源
最近更新 更多