问题标签 [mediabrowserservicecompat]

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 投票
0 回答
174 浏览

android - 媒体会话连接器#onCommand 没有被调用

我正在按照 android 官方应用程序构建一个简单的媒体应用程序。但就我而言,我需要从远程获取每个剪辑的 URL,然后从中创建一个mediaId,然后播放音频剪辑。这意味着我需要非常频繁地更新我的媒体数据。为了更新媒体数据列表,我正在注册自定义命令接收器,它可以正常更新数据并根据需要播放。但是在调用sendCommand特定次数(7-8)之后onCommand没有被调用。你可以检查我的实现。

从 ViewModel 调用

服务连接

媒体会话连接器自定义命令接收器

这种行为是间歇性的,在模拟器上我在重复相同的过程 7-8 次后遇到了这个问题,但在真实设备上,这发生在 18-20 次调用之后。

0 投票
2 回答
1118 浏览

android - 在屏幕关闭期间在后台播放视频的音频,android?

我有一个使用 exoplayer 播放视频的应用程序。

当用户在播放器页面上并按下电源按钮关闭屏幕时,我希望音频继续在后台播放,并且通知应该对用户可见,并具有播放、暂停、视频元数据等控件,类似于我们对每个人的控制音乐播放应用。

我可以使用setPlayWhenReady(true).

但我被困在通知中。我应该使用MediaBrowserServiceCompat还是必须创建自定义通知来处理它?

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 投票
0 回答
143 浏览

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

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

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

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

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

0 投票
0 回答
251 浏览

android-intent - 无法将 MediaPlaybackService 与意图绑定并且无法检测到 MediaSessionCompat.Callbacks

我一直在尝试在服务的帮助下检测蓝牙耳机的媒体键事件,但应用程序因以下错误而崩溃:

我尝试将 MediaBrowserServiceCompat 更改为 MediaBrowserService,崩溃问题已解决,但未检测到媒体按钮。

MediaPlaybackService.class

MainActivity.class

清单.xml

0 投票
1 回答
206 浏览

android - 打开蓝牙启动 MediaBrowserServiceCompat

当我在我的 OnePlus 上打开蓝牙时,就会MediaBrowserServiceCompat启动。

我的第一个 logcat 条目来自onCreate()我的类​​扩展中的方法MediaBrowserServiceCompat。其他几个媒体播放器应用程序也启动了。logcat 中没有更多关于蓝牙启动的原因和方式的信息MediaBrowserServiceCompat。因此,我迷路了。该行为并非完全可重现,但它会发生 9/10 次,尤其是在我的蓝牙耳机打开的情况下。仅连接耳机不会导致相同的行为。仅打开设备上的蓝牙即可。

当我打开蓝牙时是什么原因MediaBrowserServiceCompat启动或我如何确定导致它的原因?反过来,我该如何防止这种行为?

0 投票
1 回答
165 浏览

android - 当应用程序进入后台时,MediaBrowserServiceCompat 停止播放音乐

当应用程序进入后台时,Mediabrowsercompat 不播放音乐。如果我没有断开活动 onStop 方法中的 mediabrowsercompat 实例,那么它正在工作。但这不是解决方案,因为根据文档,一旦应用程序进入后台,我们必须断开服务。

这是我的 mediabroweserservicecomat 类(我正在使用 Exoplayer 播放音乐):

这是我的活动课:

0 投票
1 回答
250 浏览

android - 从 MediaBrowserService 更新活动中的搜索栏的最佳方法?

所以我有一个 MediaBrowserServiceCompat() 来使用 MediaPlayer 播放一些音频,以及一个使用当前媒体播放的 UI 界面的活动。在这个界面上,我有一个进度条,我想用媒体播放器的当前位置进行更新。

在此处输入图像描述

我正在考虑在服务中使用这种方法,每秒我都会通过 MediaSession 的元数据发送 MediaPlayer 的当前位置:

我会在 onMetadataChanged() 的活动中收到它,然后更新 UI。

但是后来我想我可以在活动中启动一个计时器并在它播放/暂停时对其进行管理,然后无需为此与服务进行通信。但也许酒吧与媒体播放器不同步会有风险......

所以我想知道处理这个问题的最佳方法是什么?

为了在服务和活动之间进行通信,我在服务中使用了 MediaSession:

并且活动中的 MediaController 调用 mediaController.transportControls 来执行按钮的操作。

0 投票
0 回答
102 浏览

android - 在 Android 11 setMediaSession on Notification 然后调用 stopSelf 不会触发 MediaBrowserServiceCompat 中的 onDestroy

我已尝试尽可能缩小代码范围以识别问题(尽管可能遗漏了一些部分),但基本上我遇到了 Android 11 或更高版本出现的问题,其中 MediaBrowserServiceCompat 不会被破坏使用相同的代码会在其他版本中破坏它。我已将其范围缩小为通知并设置 MediaSession 令牌。如果我设置它,它不会在调用时破坏,stopSelf()如果我不设置它,它会清除。我还注意到它将绑定到服务(如果设置了 MediaSession 令牌),但我看不出有办法强制它解除绑定。下面提供的示例代码

我如何才能澄清 mediaSession 已结束的通知,以便它与服务解除绑定(我相信这是我需要走的路)。我似乎也找不到任何关于发生了什么变化以及为什么在 Android 10 上发生故障的 Android 文档

0 投票
0 回答
18 浏览

android - MediaController.removeQueueItem(MediaDescriptionCompat) 方法不会从播放列表中删除项目

我使用 MediaBrowserServiceCompat 播放音频。面临无法从当前播放列表中删除项目的问题。没有错误,没有警告。告诉我可能是什么问题?