问题标签 [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.
android - MediaMetadataCompat 附加功能
有没有办法使用支持库中的 MediaMetadataCompat 的附加功能?
使用 MediaMetadata 我可以设置附加值,但不能使用兼容的。
android - 如何停止 MediaBrowserServiceCompat?
我的服务:
我的活动:
我想在 UI 中添加按钮关闭,但如何停止MusicService
?它继续在后台投射。
android - 无法连接 MediaBrowserCompat
我遵循了关于连接 MediaBrowserCompat 的 Android 官方文档,但它被拒绝连接,事实上既没有onConnected()
,onConnectionSuspended()
也没有onConnectionFailed()
被调用。
我也试过这个答案,但没有奏效。
我正在使用25.3.1
支持库的版本,并且所有 sdk 工具都是最新的。
编辑
SongPlayerService 的一部分
pagination - 如何通过引用 Android Auto MediaBrowser 在 MediaBrowserServiceCompat 中设置 EXTRA_PAGE 和 EXTRA_PAGE_SIZE?
我有一个 Android Auto 应用程序。我想利用分页在应用程序内浏览。您似乎可以通过获取对 MediaBrowserCompat 的引用并将这些常量传递给 .subscribe() 来设置 EXTRA_PAGE 和 EXTRA_PAGE_SIZE。但是,我不知道如何获取对 Android Auto Audio 用于调用 .subscribe() 的 MediaBrowserCompat 的引用。
对于应该简单的事情来说,这似乎太复杂了,我只是想太多了吗?
java - API26 上的 MediaBrowserServiceCompat
我刚开始使用 MediaBrowserServiceCompat 为背景音乐播放器开发一个 android 应用程序,并在 Android 模拟器 API 26 上遇到了这个异常(在 API 24 上没有崩溃)。我是否遗漏了什么,或者我遇到了 API 26 的错误?谢谢
MainActivity.java
我的服务.java
android - 片段和服务器之间的通信问题
我有一个片段,我想与服务器通信,但问题是我总是得到空指针
我在我的片段 onCreateView 中有这个:
这是我的服务:
我得到了这个致命的例外:主要
我希望你能帮帮我
android - MediaControllerCompat 的 onPlayFromMediaId() 方法的奇怪行为
我正在使用扩展的服务MediaBrowserServiceCompat
,并且还具有MediaSessionCompat.Callback()
它的覆盖方法,包括onPlayFromMediaId()
.
在单击 recyclerview 项目时具有 recyclerview 的片段内部,调用以下代码。从图像中可以清楚地看出mediaId
,还有songBundle
值并被传递给onPlayFromMediaId()
方法。
奇怪的是,在该playFromMediaId()
方法被覆盖的 Service 类中,它只接收字符串变量的值,mediaId
而songBundle
神奇地变为空。(注意,用于放置和获取parcelable的key也是一样的。parcelablesongsVO
是一个实现Parcelable
接口的POJO。)
除此之外,我注意到的另一件有趣的事情是,当我返回到onPlayFromMediaId()
执行完后调用的片段并检查每个变量的值时,除了mediaId
其他所有变量都变为空。
RecyclerAdapter 类
TLDR-onPlayFromMediaId(String, Bundle)
仅传递字符串变量,而 Bundle 传递为空。
参考 -本教程
java - MediaBrowserCompat.connect() 从不调用 onConnected 或任何 MediaBrowserCompat.ConnectionCallback 方法
我正在尝试将我的活动连接到MediaBrowserServiceCompat
使用MediaBrowserCompat
. 这是我的活动:
您可能希望ConnectionCallback
调用其中一种方法,但这是 logcat 打印的内容(包括从服务调用的日志):
当我在我的服务中调用时它也会setSessionToken(mediaSession.getSessionToken())
崩溃NullPointerException
:
<action android:name="android.media.browse.MediaBrowserService"/>
如果您想知道的话,我会在我的清单中添加服务所需的内容。
我做错了什么还是只是appcompat(v7:25.3.1)中的一个错误?
android - 刷新 MediaBrowserService 订阅内容
TL;DR:我已成功创建并(通过订阅)将活动耦合到媒体浏览器服务。此媒体浏览器服务可以继续运行并在后台播放音乐。我希望能够在某个阶段刷新内容,无论是在应用程序再次进入前台时还是在 SwipeRefreshLayout 事件期间。
我想实现以下功能:
- 启动 MediaBrowserServiceCompat 服务。
- 从活动中,连接并订阅媒体浏览器服务。
- 允许该服务在应用关闭时继续运行和播放音乐。
- 在稍后阶段,或在 SwipeRefreshLayout 事件中,重新连接并订阅服务以获取新鲜内容。
我收到的问题是在 MediaBrowserService 中(在创建订阅后)您只能从 onLoadChildren() 方法调用一次 sendResult() ,因此下次尝试使用相同的根订阅媒体浏览器服务时,第二次调用 sendResult() 时会出现以下异常:
我调用以下方法来连接和断开媒体浏览器(同样,在第一次连接时一切运行顺利,但在第二次连接时,我不确定如何通过订阅刷新内容):
我在 onPause() 而不是 onDestroy() 中取消订阅并断开连接,以便即使活动保留在后台堆栈上也会重新创建订阅。
分别在活动和服务中用于滑动刷新的实际方法:
活动
服务
其他研究:
我参考了 Github 上的 Google Samples 代码,以及...
- https://github.com/googlesamples/android-MediaBrowserService
- https://github.com/moondroid/UniversalMusicPlayer
在创建媒体浏览器服务并且活动至少订阅一次后,上述存储库似乎都没有处理刷新内容的问题 - 我想避免重新启动服务,以便音乐可以在后台继续播放。
可能的相关问题:
- MediaBrowser.subscribe 在我从活动 2(6.0.1 Android)返回活动 1 后不起作用——对当前问题没有影响
java - 在哪里创建音乐播放器服务 wrt MediaBrowserServiceCompat
我想创建一个利用MediaBrowserService功能的 MusicPlayer 应用程序。在浏览 MediaBrowserServiceCompat的文档时,我意识到它是Service的子类,这意味着它运行在 Application 的主 UI 线程上。
但由于音乐播放器是一项长期运行的任务,我认为最好将其实现为IntentService
,而不是作为服务。
所以我想问:
我应该在哪里实现我的 MusicPlayer 服务?
我应该在实施中实施它
MediaBrowserServiceCompat
吗?但是它不会对 UI 线程造成太大影响吗?或者我应该将它实现为
IntentService
& 从我的 MediaBrowserServiceCompat 调用它?但这似乎有点复杂。
这是我的初始代码结构
请建议。
谢谢你