问题标签 [android-mediasession]

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 回答
829 浏览

android - 无法使用 getSystemService() 获取 MediaSessionManager 的实例

我一直在尝试新的 Android Lollipop API,尤其是新的媒体播放控制框架。在文档中,它说要获取新 MediaSessionManager 的实例,我必须调用getSystemService(MEDIA_SESSION_MANAGER). 但是,在 Android Studio 中编写代码会出现错误,指出参数只能是以下之一List of services like POWER_SERVICE, WINDOW_SERVICE, VIBRATOR_SERVICE etc.

我认为这可能是 Android Studio 的一个错误,但我可能没有使用 Lollipop 中引入的所有其他新 API。我的系统上安装了最终的 Lollipop SDK。

0 投票
0 回答
1735 浏览

android - Android MediaSessionCompat 未在 KitKat 上显示媒体控制按钮

我正在构建一个音乐播放器,目前正在尝试实现锁屏媒体控件和播放信息。我的第一次尝试是使用 RemoteControlClient,但此方法已被弃用,我遇到了无法解决的错误。所以我尝试切换到 MediaSessionCompat 类,除了媒体控件不显示外,一切正常。

这就是我设置媒体会话的方式,然后我有帮助方法来更新它的状态和元数据,就像这样

踢球者是,我可以使用 getRemoteControlClient() 手动获取 RemoteControlClient 并设置它的传输控制标志以使按钮显示,但随后它们不使用提供的回调类,它们使用 eventReceiver,我遇到了我遇到的错误使用我原来的 RemoteClientControl 实现。我没看到什么?我读过的所有文档和我看到的其他 SO 问题都表明这应该可行。

编辑:是的,我很抱歉,这是一个很大的代码库,所以我忘记了所有的辅助方法

我将我的库从 22.0.0 更新到 22.2.1,现在按钮显示(进度:D),但似乎远程客户端控件使用的是 eventReceiver 而不是 MediaSession 的回调,除了 seekTo 使用回调作为预期的。

0 投票
2 回答
1452 浏览

android - 访问和控制在活动服务中创建的媒体播放器

基于这个例子:https ://www.binpress.com/tutorial/using-android-media-style-notifications-with-media-session-controls/165

我创建了一个服务,它通过通知中的控制按钮从 URL 播放音频流 - 我可以暂停、恢复和关闭流媒体(通过停止服务)。

但是我怎样才能从活动中控制它,就像从通知中一样?当然,我可以通过适当的操作发送意图,但我想要的是(例如):

我已经从我开始服务的地方打开了活动,正在播放音乐,然后我拉下一个通知抽屉,例如暂停,音乐暂停但活动不知道这一点

所以我的问题是 - 是否有可能从活动中访问正在运行的媒体会话或类似的东西并像从通知中一样控制它?

0 投票
1 回答
956 浏览

android - Android MediaSession 对耳机没有反应

我对 android 很陌生,我正在创建一个音乐播放器。我不熟悉 MediaSession,现在我有一个正常工作的音乐播放器,但它不支持对耳机点击或暂停来电作出反应。

这是我的代码:

我也有一个BroadcastReceiver用这个动作定义的

<action android:name="android.intent.action.MEDIA_BUTTON" />

这是我所有相关的代码MediaSession。所以,就目前而言,我只是尝试从耳机中获取有关操作的通知。我在里面的第一行有一个断点onReceive(),我点击耳机中的按钮,没有任何反应。如果我长按按钮而不是 android 进入聆听模式以获取语音指令。

我还需要什么?

0 投票
2 回答
2755 浏览

java - 锁屏播放器控件和元数据

我正在尝试使用 MediaSessionCompat 为我的应用添加锁屏播放器控件和元数据。我尝试的一切都不起作用。锁定屏幕在播放时不显示任何控件或元数据。请在下面查看我当前的代码,不胜感激。

流服务.java:

这是 RemoteReceiver.java:

0 投票
1 回答
2096 浏览

android - AbstractMethodError:抽象方法“无效android.media.RemoteController$OnClientUpdateListener.onClientSessionEvent

我在三个特定三星型号上的 Android 应用程序的生产中遇到了奇怪的崩溃。它抱怨我没有覆盖onNewSessionEvent标准Android平台中不存在的抽象方法:http: //developer.android.com/reference/android/media/RemoteController.OnClientUpdateListener.html

这三个型号是 Galaxy S5(AT&T 和 Sprint)和 S6 Edge(T-mobile),都在 5.x 上。我没有这些设备,所以我当然无法在本地复制和排除故障。

我的代码确实使用了OnClientUpdateListener在 a 上注册的RemoteController,但这是有道理的。

有任何想法吗?

0 投票
1 回答
568 浏览

android - Receiving Media Button Intent on an LG G4

This problem occurs on LG G4 (Android version 5.1) only.

My Application uses headset's play/pause button to trigger an action. I implemented the BroadcastReceiver as:

And I am registering the receiver with:

This code works perfectly on various smartphones, except LG G4. Lg phone almost always starts the Music Widget and my logcat says:

After some search on SO, I implemented a MediaSession to make my application the sole receiver of the ACTION_MEDIA_BUTTON intent with the below code:

How can I make my application the only receiver of the Media Button intent and have the MediaButtonIntentReceiver (BroadcastReceiver) called at each button action?

0 投票
1 回答
1786 浏览

android - 无法展开 RemoteViews:华为设备上的 MediaSessionCompat 和 NotificationCompat.MediaStyle

当我尝试在运行 Android 5.0.1 的 HUAWEI P8 lite 设备上显示通知时,我的应用程序崩溃(它在 Nexus 和三星设备上运行良好)。我的大部分代码取自 Ian Lake 的视频媒体播放正确方式(Big Android BBQ 2015)。我所有的代码都在 Android 服务中。如果我删除代码:

然后应用程序不会崩溃,并且会显示带有图像和标题的通知。但是缺少媒体操作按钮。

堆栈跟踪:

代码:

0 投票
1 回答
1383 浏览

android - 如何使用棒棒糖前版本的支持库获取 MediaSessionCompat 列表?

所以谷歌弃用了整个 RemoteControlClient,取而代之的是 MediaSession。然后,为了添加向后兼容性,在支持库中添加了 MediaSessionCompat,因此您不再需要使用 RemoteControlClient。

但是,他们没有添加替代品来接收其他播放器的元数据和播放状态,也无法控制它。MediaSessionCompat当然,如果您媒体播放器,您可以自己制作,但如果您只想远程控制其他媒体播放器怎么办?

我的问题是,MediaSessionManager使用支持库的替代品是什么?具体来说,如何获取MediaSessionCompat系统上所有当前会话的列表(例如MediaSessionManager.addOnActiveSessionsChangedListener()使用新 API)?

基本上,我如何使以下代码在 API < 21 上工作:

0 投票
0 回答
46 浏览

android - API 是否提供远程视频播放控制?

我知道MediaController,但据我所知,只有在VideoView. 我正在使用 LG Connect SDK 在远程设备上播放视频,并且能够实现该MediaController.MediaPlayerControl接口。

我是否需要从头开始设计暂停和搜索控件?