问题标签 [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.
android - Android - 视频播放器活动中的媒体会话/媒体按钮(不是服务)
在活动中实现的视频播放器中,不是服务,我使用 MediaSessionCompat 来接收媒体按钮操作(蓝牙和 hset)。此视频播放器支持后台播放,即当另一个活动进入前台时视频继续播放。
setActive(true) 激活会话并在活动启动后接收媒体命令。当我的播放器失去音频焦点时,而不是在暂停后,我的播放器会停止其媒体会话。到目前为止一切都很好。
如果另一个播放器(我正在使用 VLC 进行测试)激活请求音频焦点和 setActive(true) 一切都按预期工作。
但是,当我的应用程序的用户通过单击屏幕上的开始按钮(而不是媒体按钮)重新获得音频焦点时,它不会激活媒体会话并且不会收到媒体按钮操作。
媒体会话在服务中的行为与在活动中的行为不同,但这种行为似乎与 android doc 相矛盾,其中说:
Android 按以下顺序路由媒体按钮事件: 1) Android 首先将媒体按钮事件分派到前台 Activity(屏幕上的 Activity)。
无论如何,当我的应用程序重新出现在屏幕上时,您能帮我重新激活媒体会话吗?
android - 如何检测远程媒体按钮的功能?
Google Play Music 等应用可以检测媒体控制器有哪些按钮。例如,对于单按钮的有线耳机,连续按下按钮 2-3 次将向前/向后跳过曲目。如果您使用具有物理快进/后退按钮的蓝牙控制器,播放/暂停按钮将不会出现此行为,快速单击播放/暂停按钮将快速播放/暂停曲目。
这些应用程序如何知道控制器的功能?
android - 将焦点从 FM 收音机转移到蓝牙
我正在开发一个应用程序,其目的是通过蓝牙播放音乐并处理媒体按钮。我已经成功地使用这样的代码实现了:
要播放音乐,我正在使用服务,要处理按钮按下,我正在使用接收器:
}
我正在更改元数据onMediaPlayerStart
和此类标准的东西,一切都很好,但这是问题所在:
连接到汽车音响系统并播放音乐后 - 例如,汽车音响模式停留在 FM 收音机,如果它在那里,我必须手动将其更改为车内的蓝牙
我想要实现的目标:当我的应用开始播放曲目时,我想以编程方式将汽车音频模式从 FM 收音机更改为蓝牙
我已经用谷歌搜索并在堆栈上搜索过,但在这种情况下什么都没有,我什至不确定哪个班级应该做这样的事情。我知道这个问题可能被视为一个不好的问题并且没有重点,但这是因为我对在 Android 上使用蓝牙的知识也很严密,很难找到一些关于这个问题的例子
android - android mediaSession getPosition() 总是返回 0
我正在尝试获取当前位置,以便可以在我的媒体播放器应用程序中推进搜索栏。但是,每次我打电话:
如果媒体正在播放,则返回 0,如果暂停,则返回 -1。我搜索了很多没有成功的解决方案,我尝试了一切。
顺便说一句,我将上面的代码放在运行器中,以便它每 1 秒执行一次。
android - 如何修复 NoClassDefFoundError:android.media.session.MediaSessionManager
我制作了一个应用程序,它在 api 20+ 中完美运行,但对于 android 版本 4.4 及以下版本,它因错误而崩溃,NoClassDefFoundError: android.media.session.MediaSessionManager
这是我在开发者控制台中获得的堆栈跟踪。
我能从中理解的是错误在 initMediaSession 方法中。这是我的 initMediaSession 方法
我不明白为什么它会在 4.4 和更少的设备上崩溃,以及我该如何解决这个问题。我用谷歌搜索并得到了这个,但这篇文章没有告诉如何解决这个问题。
android - 未调用 onAdjustVolume
我正在尝试使用 MediaSession for Android 5.0+ 在我的服务中获取 HARDWARE_HOOK 按钮和音量更改按钮。当屏幕关闭/锁定时,这必须特别工作。问题是虽然我能够接收 HARDWARE_HOOK 按钮事件,但未检测到音量变化。onAdjustVolume 方法永远不会被调用。
android-mediaplayer - 为什么需要使用媒体控制器和媒体会话?
所有大多数媒体应用程序还需要使用 Media COntroller 和媒体会话。我不明白为什么需要使用它们?如果我直接调用 MediaPlayer,我的应用程序将运行,是吧?谢谢你。
android - 在 mediabuttonreceiver 中获取非法参数异常
我正在尝试在我的服务中播放歌曲,并且我能够为棒棒糖及以上设备成功播放它。我看到了一些教程,它表明使用类名方法我们可以为预棒棒糖设备做到这一点,这就是我得到的错误
07
这就是我在主要活动绑定部分调用服务的方式
这就是我调用服务的方式
这是我收到错误的媒体会话方法
该应用程序在 android M 上正常运行,但在 android jellybean 上显示此错误
android - Media Session Compat:棒棒糖前不同的锁屏行为
我正在使用mediaSessionCompat
在锁定屏幕上呈现当前正在播放的音频。
从棒棒糖一切都很好,但是在棒棒糖之前,我在 Sony C6916 API 19 上遇到了以下问题
如上图所示,锁屏背景没有改变。相反,它添加了我将用于锁定屏幕的背景作为播放音频的图像
我知道不同的 Android 设备会有不同的行为,但有人知道解决这个问题的方法吗?
我将位图添加到元数据
我知道可以传递的不同数据,METADATA_KEY_ALBUM_ART
但METADATA_KEY_DISPLAY_ICON
我最担心的是,如果这会覆盖允许它的设备上所需的锁定屏幕背景,所以我不确定我可以在这里做什么,所以任何输入都将不胜感激。
如果您需要有关我的实施的更多信息,请在评论中告诉我。
谢谢
android - Android - 如何更改其他应用程序的 MediaSession?
我正在尝试开发一个应用程序来获取正在播放音乐/视频的其他应用程序的元数据。现在,我专注于 Youtube Android 应用程序。我认为 MusixMatch 做到了,所以它一定是可能的。据我所知,MusixMatch 会监听 Youtube 的 MediaSession 的任何更改以检索元数据。我的问题是如何?
这是我到目前为止所做的尝试。
- 设置一个
MediaBrowserService
. - 设置回调
MediaBrowserService
- 在服务上设置令牌。
但我仍然普遍感到困惑。该服务应该能够在后面触发,即使应用程序已经死亡。这意味着我不会手动将服务绑定到任何东西。那么......它究竟是如何被触发的?我尝试添加intent-filters
,但我尝试过的那些没有奏效。
这是我尝试过的列表intent-filters
...我尝试了一堆,因为没有一个有效。