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

android - Android - 视频播放器活动中的媒体会话/媒体按钮(不是服务)

在活动中实现的视频播放器中,不是服务,我使用 MediaSessionCompat 来接收媒体按钮操作(蓝牙和 hset)。此视频播放器支持后台播放,即当另一个活动进入前台时视频继续播放。

setActive(true) 激活会话并在活动启动后接收媒体命令。当我的播放器失去音频焦点时,而不是在暂停后,我的播放器会停止其媒体会话。到目前为止一切都很好。

如果另一个播放器(我正在使用 VLC 进行测试)激活请求音频焦点和 setActive(true) 一切都按预期工作。

但是,当我的应用程序的用户通过单击屏幕上的开始按钮(而不是媒体按钮)重新获得音频焦点时,它不会激活媒体会话并且不会收到媒体按钮操作。

媒体会话在服务中的行为与在活动中的行为不同,但这种行为似乎与 android doc 相矛盾,其中说:

Android 按以下顺序路由媒体按钮事件: 1) Android 首先将媒体按钮事件分派到前台 Activity(屏幕上的 Activity)。

无论如何,当我的应用程序重新出现在屏幕上时,您能帮我重新激活媒体会话吗?

0 投票
1 回答
109 浏览

android - 如何检测远程媒体按钮的功能?

Google Play Music 等应用可以检测媒体控制器有哪些按钮。例如,对于单按钮的有线耳机,连续按下按钮 2-3 次将向前/向后跳过曲目。如果您使用具有物理快进/后退按钮的蓝牙控制器,播放/暂停按钮将不会出现此行为,快速单击播放/暂停按钮将快速播放/暂停曲目。

这些应用程序如何知道控制器的功能?

0 投票
1 回答
145 浏览

android - 将焦点从 FM 收音机转移到蓝牙

我正在开发一个应用程序,其目的是通过蓝牙播放音乐并处理媒体按钮。我已经成功地使用这样的代码实现了:

要播放音乐,我正在使用服务,要处理按钮按下,我正在使用接收器:

}

我正在更改元数据onMediaPlayerStart和此类标准的东西,一切都很好,但这是问题所在:

连接到汽车音响系统并播放音乐后 - 例如,汽车音响模式停留在 FM 收音机,如果它在那里,我必须手动将其更改为车内的蓝牙

我想要实现的目标:当我的应用开始播放曲目时,我想以编程方式将汽车音频模式从 FM 收音机更改为蓝牙

我已经用谷歌搜索并在堆栈上搜索过,但在这种情况下什么都没有,我什至不确定哪个班级应该做这样的事情。我知道这个问题可能被视为一个不好的问题并且没有重点,但这是因为我对在 Android 上使用蓝牙的知识也很严密,很难找到一些关于这个问题的例子

0 投票
1 回答
1256 浏览

android - android mediaSession getPosition() 总是返回 0

我正在尝试获取当前位置,以便可以在我的媒体播放器应用程序中推进搜索栏。但是,每次我打电话:

如果媒体正在播放,则返回 0,如果暂停,则返回 -1。我搜索了很多没有成功的解决方案,我尝试了一切。

顺便说一句,我将上面的代码放在运行器中,以便它每 1 秒执行一次。

0 投票
3 回答
1018 浏览

android - 如何修复 NoClassDefFoundError:android.media.session.MediaSessionManager

我制作了一个应用程序,它在 api 20+ 中完美运行,但对于 android 版本 4.4 及以下版本,它因错误而崩溃,NoClassDefFoundError: android.media.session.MediaSessionManager这是我在开发者控制台中获得的堆栈跟踪。

我能从中理解的是错误在 initMediaSession 方法中。这是我的 initMediaSession 方法

我不明白为什么它会在 4.4 和更少的设备上崩溃,以及我该如何解决这个问题。我用谷歌搜索并得到了这个,但这篇文章没有告诉如何解决这个问题。

0 投票
1 回答
430 浏览

android - 未调用 onAdjustVolume

我正在尝试使用 MediaSession for Android 5.0+ 在我的服务中获取 HARDWARE_HOOK 按钮和音量更改按钮。当屏幕关闭/锁定时,这必须特别工作。问题是虽然我能够接收 HARDWARE_HOOK 按钮事件,但未检测到音量变化。onAdjustVolume 方法永远不会被调用。

0 投票
2 回答
542 浏览

android-mediaplayer - 为什么需要使用媒体控制器和媒体会话?

所有大多数媒体应用程序还需要使用 Media COntroller 和媒体会话。我不明白为什么需要使用它们?如果我直接调用 MediaPlayer,我的应用程序将运行,是吧?谢谢你。

0 投票
1 回答
547 浏览

android - 在 mediabuttonreceiver 中获取非法参数异常

我正在尝试在我的服务中播放歌曲,并且我能够为棒棒糖及以上设备成功播放它。我看到了一些教程,它表明使用类名方法我们可以为预棒棒糖设备做到这一点,这就是我得到的错误

07

这就是我在主要活动绑定部分调用服务的方式

这就是我调用服务的方式

这是我收到错误的媒体会话方法

该应用程序在 android M 上正常运行,但在 android jellybean 上显示此错误

0 投票
1 回答
196 浏览

android - Media Session Compat:棒棒糖前不同的锁屏行为

我正在使用mediaSessionCompat在锁定屏幕上呈现当前正在播放的音频。

从棒棒糖一切都很好,但是在棒棒糖之前,我在 Sony C6916 API 19 上遇到了以下问题

在此处输入图像描述

如上图所示,锁屏背景没有改变。相反,它添加了我将用于锁定屏幕的背景作为播放音频的图像

我知道不同的 Android 设备会有不同的行为,但有人知道解决这个问题的方法吗?

我将位图添加到元数据

我知道可以传递的不同数据,METADATA_KEY_ALBUM_ARTMETADATA_KEY_DISPLAY_ICON我最担心的是,如果这会覆盖允许它的设备上所需的锁定屏幕背景,所以我不确定我可以在这里做什么,所以任何输入都将不胜感激。

如果您需要有关我的实施的更多信息,请在评论中告诉我。

谢谢

0 投票
1 回答
1172 浏览

android - Android - 如何更改其他应用程序的 MediaSession?

我正在尝试开发一个应用程序来获取正在播放音乐/视频的其他应用程序的元数据。现在,我专注于 Youtube Android 应用程序。我认为 MusixMatch 做到了,所以它一定是可能的。据我所知,MusixMatch 会监听 Youtube 的 MediaSession 的任何更改以检索元数据。我的问题是如何?

这是我到目前为止所做的尝试。

  1. 设置一个MediaBrowserService.
  2. 设置回调MediaBrowserService
  3. 在服务上设置令牌。

但我仍然普遍感到困惑。该服务应该能够在后面触发,即使应用程序已经死亡。这意味着我不会手动将服务绑定到任何东西。那么......它究竟是如何被触发的?我尝试添加intent-filters,但我尝试过的那些没有奏效。

这是我尝试过的列表intent-filters...我尝试了一堆,因为没有一个有效。