问题标签 [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.
android - MediaBrowserService 和 MediaStore
如何使用MediaBrowserService从不同的提供商(文件资源管理器、GoogleDrive、ContentProvider 等)加载媒体,保持单一服务
与 UAMP 核对,它仅使用一个提供商
我的第二个问题是onLoadItem的目的是什么
android-service - 如何从 Activity 调用 mediaBrowserService 中的 getDuration?
早些时候,使用 boundService 这可以很容易地实现。但是使用 MediaBrowserService 我无法访问外部的 getDuration,没有它我无法更新搜索栏。
android - 如何停止 MediaBrowserServiceCompat?
我的服务:
我的活动:
我想在 UI 中添加按钮关闭,但如何停止MusicService
?它继续在后台投射。
android - MediaBrowserService 与 MediaPlayer 在 Android 上播放波形文件
在 Android 开发人员指南中,在Building an Audio App 部分下,有一个声明:
音频应用程序的首选架构是客户端/服务器设计。播放器及其媒体会话在 MediaBrowserService 中实现,UI 和媒体控制器与 MediaBrowser 一起存在于 Android 活动中。
另一方面,我们还有MediaPlayer类。
在哪些情况下首选哪种方式?
java - Android Auto - 后台服务和活动之间的通信
我正在尝试将MediaBrowserService
Android Auto 添加到现有的媒体播放器应用程序中。该应用程序有一个管理MediaSession
,Callbacks
和相关状态的活动。它已被设置为发出事件,后台使用这些事件MediaBrowserService
并用于构建其内容树。
当流程如下时,这一切都很好:
Start my app -> Start Android Auto -> Browse media
但是,当流量为:
Start Android Auto -> Browse media
...例如,当应用程序未启动并在启动 Android Auto 之前在后台运行时。
问题似乎是,虽然我MediaBrowserService
将由 Android Auto 自动启动,但它不会Activity
在这样做时创建我的应用程序的相应实例(这意味着没有通知事件MediaBrowserService
,因此 Android Auto 中没有可用的内容)。
理想情况下,似乎MediaBrowserService
需要能够检查并查看应用程序的“主”Activity
是否正在运行,并在未运行时生成一个新实例。但不确定这是否可能,而且往往觉得这是错误的做法。
解决此问题的正确方法是什么?我不想在实现中复制所有应用程序的MediaSession
处理和播放相关代码MediaBrowserService
。这应该尽可能保持轻量级。有没有办法确保应用程序Activity
在激活时始终运行MediaBrowserService
?
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 - 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 后不起作用——对当前问题没有影响
android - 安卓电视媒体控制器
我尝试使用 android 的 mediabrowser 和 sample by google 在手机上运行良好(https://github.com/googlesamples/android-media-controller)
但在 android TV 上找不到任何支持此功能的应用
在仅放置当前应用程序的服务中
你能帮我获取 API 来收集上次使用的媒体数据吗?我找不到任何关于创建电视启动器的描述或指南(可以访问另一个应用程序上次使用或推荐的媒体)
我只想获取元数据,例如https://developer.android.com/training/tv/playback/now-playing.html 或 http://corochann.com/android-tv-application-hands-on-tutorial-11- 277.html
android - 如何将架构组件与 MediaBrowserService 一起使用?
我正在尝试制作一个使用 MediaBrowserService 播放音频的应用程序,但也使用新的架构组件来构建整个应用程序。我之前曾将 MediaBrowserService 用于另一个应用程序(https://github.com/willhwongwork/PodCast),但在该应用程序中我没有使用 OnGetRoot() 和 OnGetChildren() 方法加载数据我只是使用加载器或 asynctask 加载数据来自网络(并且该应用程序中没有架构)。
那么现在如果我想使用 LiveData 和 ViewModel 我应该如何构建代码呢?我应该在 MediaBrowserService 中使用它们并通过 OnGetRoot() 和 OnGetChildren() 方法向 UI 提供数据吗?