问题标签 [mediabrowserservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
430 浏览

android - 我对 Android Auto 媒体持续时间功能有疑问

我刚刚开发了带有android汽车支持的媒体应用程序,一切正常,但是我对汽车操作系统的新设计有一个问题,就像以前的设计一样,媒体流没有持续时间,但现在他们增加了媒体的持续时间,我不想要它喜欢我想隐藏它,因为我正在播放直播。如果它不能隐藏,那么我想做倒计时,但我不知道如何使用媒体会话来做到这一点。

这是我设置媒体会话的代码。

在此处输入图像描述

0 投票
0 回答
328 浏览

android - Android MediaBrowserService:onLoadChildren 为 id null 发送了 null 列表

MediaBrowserServiceCompat用来支持Android Auto

从崩溃报告(我在这个问题的底部添加了其中一个)我看到onLoadChildren我覆盖的方法存在问题。

我这样做:

因为在文档中它说如果parentId无效,请sendResult使用null. 它正在崩溃,但它应该根据文档执行此操作,而不是崩溃:

“当给定的 parentId 无效时,实现必须调用带有 null 的 result.sendResult,这将调用 MediaBrowserCompat.SubscriptionCallback.onError。”

另一方面,文档还提到了以下内容parentId

parentId: String: 要查询其子项的父媒体项的 id。此值绝不能为空。

( https://developer.android.com/reference/android/service/media/MediaBrowserService.html#onLoadChildren(java.lang.String,%20android.service.media.MediaBrowserService.Result%3Cjava.util.List%3Candroid. media.browse.MediaBrowser.MediaItem%3E%3E) )

所以,我的问题来了:

1)如何(以及为什么)parentId设置为,null而文档说它不能是null。我无法控制这一点,因为系统调用onLoadChildrennull parentId

2)为什么它会崩溃而不是MediaBrowserCompat.SubscriptionCallback.onError.像文档所述那样调用?

其中一份崩溃报告:

0 投票
0 回答
853 浏览

android - 当我们尝试测试功能时,该应用未出现在 Android Auto 屏幕中

我在 Playstore 上有一个音频播放器应用程序,想添加对 AndroidAuto 的支持。进行必要的更改后,当我将新的 apk 上传到 playstore 时,它​​被拒绝并收到了来自 Play 的以下电子邮件

当他们说应用程序没有出现在屏幕上时,这是什么意思?我在清单中有所有必需的条目,使我的服务可浏览。我不明白缺少什么。

我能够在真正的 android 设备上测试该应用程序,并且它可以正常运行。

---------- 来自 google play 的电子邮件 ----------

应用状态:您的应用尚未被 Android Auto 接受,并且更新未在 Google Play 上发布。

APK 版本的资格问题: 当我们尝试测试功能时,应用程序没有出现在自动屏幕中

考虑用于 Android Auto:

  • 对您的应用程序进行必要的更改。
  • 增加升级后 APK 的版本号。
  • 提交您的应用以供再次审核。

或者,如果您想从 Android Auto 中排除您的应用:

  • 从您的 APK 代码中删除 Android Auto 清单条目。
  • 登录您的 Play 管理中心并上传新的 APK。
  • 单击提交更新。

有关应用如何符合 Android Auto 的更多详细信息,您可以查看 Android Auto 应用质量指南。

如果您认为我们做出此决定有误,请向我们的团队提交其他信息,我们将再次审核您的应用。

感谢您支持 Google Play,

Google Play 团队

0 投票
1 回答
896 浏览

android - 泄漏金丝雀检测 MediaBrowserServiceCompat 示例应用程序中的内存泄漏

我创建了一个实现 MediaBrowserServiceCompat 的测试应用程序。我已遵循本指南: https ://developer.android.com/guide/topics/media-apps/audio-app/building-a-mediabrowserservice 创建了 MediaPlaybackService 和 MainActivity。我在 onDestroy 方法中添加了泄漏金丝雀并添加了 AppWatcher.objectWatcher.watch(this)。在打开和退出应用程序时,leak canary 发现一个泄漏:

由于该应用程序仅包含来自 google 示例的代码,因此我无法弄清楚如何处理此泄漏。我应该忽略它吗?

代码: https ://github.com/finneapps/MediaBrowserService-memory-leak

0 投票
2 回答
700 浏览

android - 是否可以连接到 Spotify 的 MediaBrowserService?

我正在编写一个语音助手,并希望能够在 Spotify 中启动搜索结果。为了了解如何连接到 Spotify 和其他应用程序,我正在使用Google 的媒体控制器测试应用程序,它被描述为执行以下操作:

创建一个连接到 MediaBrowserService 的简单 MediaController 以测试应用间媒体控件。

此应用程序适用于通用 Android 音乐播放器示例,或任何其他实现媒体 API 的应用程序。

当我运行该应用程序时,它会将 Spotify 标识为提供MediaBrowserService,但当我尝试通过该应用程序连接到 Spotify 时出现错误:

包含错误的 Android 屏幕截图:

这是连接代码

具体来说,在调用 后不久mBrowser.connect(),回调的onConnectionFailed()方法被调用。

这是否意味着 Spotify 拒绝MediaBrowserService来自未列入白名单的应用程序的请求(如此所述)并且单个应用程序编写者无法连接到 Spotify 的MediaBrowserService,或者是否有其他连接方式?FWIW,谷歌播放音乐也拒绝通过应用程序连接。

我还尝试通过启动 intent 让 Spotify 进行搜索和播放,但没有成功。

0 投票
1 回答
914 浏览

android - 带有 ExoPlayer 和 PlayerControlView 的 MediaBrowserService - 如何从 UI (PlayerControlView) 访问播放器实例?

我目前正在开发具有视频和音频功能的应用程序的一部分,并且最近开始重构代码库。目标是集成MediaSession/ MediaControllerMediaBrowserService/ MediaBrowser框架。

我们对视频和音频组件使用ExoPlayerPlayerControlView具体的PlayerView,它需要对播放器实例的引用PlayerControlView

但是,根据android 开发人员的帖子和 的文档MediaBrowserService播放器实例应该包含在服务下。此外,客户端站点(MediaBrowser 和 MediaController)通过connect()方法和MediaBrowserConnectionCallback与之交谈的唯一方法,这使得将播放器的实例传递给 PlayerControlView(或其他方式)是不可能的。

我尝试使用各种回调,例如MediaSessionCompat.Callback,但SimpleExoPlayerPlayerControlView都不是 Parcelable。

在传统的服务中,我们Binder用来访问我们在服务中声明的方法并执行以下操作:

MediaBrowserService/ MediaBrowser但是,这对于框架来说似乎是不可能的。我检查了这个问题的答案,这表明使用 [sendCommand] 是一种调用自定义方法的方式。但它也要求参数是 Parcelable 的。

总而言之,我的问题是,有没有办法在框架下PlayerControlView访问实例SimpleExoPlayer或其他方式。MediaBrowserService

非常感谢您的任何回答或评论。

0 投票
0 回答
734 浏览

android - Android 助手 - MediaBrowserService - 语音命令 - “在 appName 上播放 x”

语音命令在 [my appName] 上播放 [song] 命令不起作用,谷歌助手无法识别“appName”。

我按照说明表https://developer.android.com/guide/topics/media-apps/interacting-with-assistant和演示应用程序表https://github.com/android/uamp

我的安卓清单:

我很难弄清楚我做错了什么或错过了什么。任何帮助将不胜感激..

PS:我的应用程序已经在商店中存放了 4 天,并且我的应用程序名称中有数字,例如“appX 101.1”(我担心这可能是个问题)

0 投票
1 回答
172 浏览

android - Android Automotive OS 不显示可播放的 MediaItem

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

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

0 投票
0 回答
188 浏览

android - 在 Android Auto MediaBrowserService 中刷新媒体

我有一个MediaBrowserServiceCompat连接到 Android Auto 作为音乐播放器。一切都是桃色的,,,,onCreate并且onGetRootonLoadChildren被称为它们应该的。

问题是,如果底层音乐发生变化(加载新的播放列表、随机播放等),我不知道如何告诉 Android Auto 它需要onLoadChildren(...)再次调用。有没有办法告诉它事情发生了变化?我试着打电话:

但这似乎不起作用。

0 投票
0 回答
143 浏览

android - MediaBrowserServiceCompat:Context.startForegroundService() 没有调用 Service.startForeground()

我有一个音乐播放器应用程序,最近我从常规服务切换到 MediaBrowserServiceCompat。该服务由框架自动创建(在应用程序启动时调用 onCreate 方法),我仅在播放操作时将其作为前台启动。

ANR 出现在少数设备上,尤其是三星,但也出现在索尼、诺基亚、AllView 等设备上。

我总是在 ContextCompat.startForegroundService 之后调用 startForeground ...

有没有办法调试/重现/修复这个问题?