问题标签 [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 投票
2 回答
2462 浏览

android - MediaMetadataCompat 附加功能

有没有办法使用支持库中的 MediaMetadataCompat 的附加功能?

使用 MediaMetadata 我可以设置附加值,但不能使用兼容的。

0 投票
2 回答
1566 浏览

android - 如何停止 MediaBrowserServiceCompat?

我的服务:

我的活动:

我想在 UI 中添加按钮关闭,但如何停止MusicService?它继续在后台投射。

0 投票
3 回答
1948 浏览

android - 无法连接 MediaBrowserCompat

我遵循了关于连接 MediaBrowserCompat 的 Android 官方文档,但它被拒绝连接,事实上既没有onConnected()onConnectionSuspended()也没有onConnectionFailed()被调用。

我也试过这个答案,但没有奏效。

我正在使用25.3.1支持库的版本,并且所有 sdk 工具都是最新的。


编辑

SongPlayerService 的一部分

0 投票
2 回答
776 浏览

pagination - 如何通过引用 Android Auto MediaBrowser 在 MediaBrowserServiceCompat 中设置 EXTRA_PAGE 和 EXTRA_PAGE_SIZE?

我有一个 Android Auto 应用程序。我想利用分页在应用程序内浏览。您似乎可以通过获取对 MediaBrowserCompat 的引用并将这些常量传递给 .subscribe() 来设置 EXTRA_PAGE 和 EXTRA_PAGE_SIZE。但是,我不知道如何获取对 Android Auto Audio 用于调用 .subscribe() 的 MediaBrowserCompat 的引用。

对于应该简单的事情来说,这似乎太复杂了,我只是想太多了吗?

0 投票
0 回答
776 浏览

java - API26 上的 MediaBrowserServiceCompat

我刚开始使用 MediaBrowserServiceCompat 为背景音乐播放器开发一个 android 应用程序,并在 Android 模拟器 API 26 上遇到了这个异常(在 API 24 上没有崩溃)。我是否遗漏了什么,或者我遇到了 API 26 的错误?谢谢

MainActivity.java

我的服务.java

0 投票
2 回答
87 浏览

android - 片段和服务器之间的通信问题

我有一个片段,我想与服务器通信,但问题是我总是得到空指针

我在我的片段 onCreateView 中有这个:

这是我的服务:

我得到了这个致命的例外:主要

我希望你能帮帮我

0 投票
0 回答
463 浏览

android - MediaControllerCompat 的 onPlayFromMediaId() 方法的奇怪行为

我正在使用扩展的服务MediaBrowserServiceCompat,并且还具有MediaSessionCompat.Callback()它的覆盖方法,包括onPlayFromMediaId().

在单击 recyclerview 项目时具有 recyclerview 的片段内部,调用以下代码。从图像中可以清楚地看出mediaId,还有songBundle值并被传递给onPlayFromMediaId()方法。

在此处输入图像描述

奇怪的是,在该playFromMediaId()方法被覆盖的 Service 类中,它只接收字符串变量的值,mediaIdsongBundle神奇地变为空。(注意,用于放置和获取parcelable的key也是一样的。parcelablesongsVO是一个实现Parcelable接口的POJO。)

在此处输入图像描述

除此之外,我注意到的另一件有趣的事情是,当我返回到onPlayFromMediaId()执行完后调用的片段并检查每个变量的值时,除了mediaId其他所有变量都变为空。

在此处输入图像描述 在此处输入图像描述

RecyclerAdapter 类

TLDR-onPlayFromMediaId(String, Bundle)仅传递字符串变量,而 Bundle 传递为空。

参考 -本教程

0 投票
3 回答
1389 浏览

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)中的一个错误?

0 投票
3 回答
2422 浏览

android - 刷新 MediaBrowserService 订阅内容

TL;DR:我已成功创建并(通过订阅)将活动耦合到媒体浏览器服务。此媒体浏览器服务可以继续运行并在后台播放音乐。我希望能够在某个阶段刷新内容,无论是在应用程序再次进入前台时还是在 SwipeRefreshLayout 事件期间。

我想实现以下功能:

  1. 启动 MediaBrowserServiceCompat 服务。
  2. 从活动中,连接并订阅媒体浏览器服务。
  3. 允许该服务在应用关闭时继续运行和播放音乐。
  4. 在稍后阶段,或在 SwipeRefreshLayout 事件中,重新连接并订阅服务以获取新鲜内容。

我收到的问题是在 MediaBrowserService 中(在创建订阅后)您只能从 onLoadChildren() 方法调用一次 sendResult() ,因此下次尝试使用相同的根订阅媒体浏览器服务时,第二次调用 sendResult() 时会出现以下异常:

我调用以下方法来连接和断开媒体浏览器(同样,在第一次连接时一切运行顺利,但在第二次连接时,我不确定如何通过订阅刷新内容):

我在 onPause() 而不是 onDestroy() 中取消订阅并断开连接,以便即使活动保留在后台堆栈上也会重新创建订阅。

分别在活动和服务中用于滑动刷新的实际方法:

活动

服务

其他研究:

我参考了 Github 上的 Google Samples 代码,以及...

在创建媒体浏览器服务并且活动至少订阅一次后,上述存储库似乎都没有处理刷新内容的问题 - 我想避免重新启动服务,以便音乐可以在后台继续播放。

可能的相关问题:

0 投票
3 回答
1072 浏览

java - 在哪里创建音乐播放器服务 wrt MediaBrowserServiceCompat

我想创建一个利用MediaBrowserService功能的 MusicPlayer 应用程序。在浏览 MediaBrowserServiceCompat的文档时,我意识到它是Service的子类,这意味着它运行在 Application 的主 UI 线程上。

但由于音乐播放器是一项长期运行的任务,我认为最好将其实现为IntentService,而不是作为服务。

所以我想问:

  1. 我应该在哪里实现我的 MusicPlayer 服务?

  2. 我应该在实施中实施它MediaBrowserServiceCompat吗?但是它不会对 UI 线程造成太大影响吗?

  3. 或者我应该将它实现为IntentService& 从我的 MediaBrowserServiceCompat 调用它?但这似乎有点复杂。

这是我的初始代码结构

请建议。

谢谢你