Android - 如何获取其他应用程序中 MediaSession 的更改?

3
我正在开发一个应用程序,可以获取正在播放音乐/视频的其他应用程序的元数据。目前,我正在专注于Youtube Android应用程序。我想到MusixMatch可以做到这一点,所以这一定是可能的。据我所知,MusixMatch监听Youtube的MediaSession的任何更改,以检索元数据。我的问题是如何实现?
以下是我迄今为止尝试过的内容:
1.设置一个MediaBrowserService。 2.在MediaBrowserService上设置回调。 3.在服务上设置令牌。
但我仍然感到困惑。该服务应该能够在后台触发,即使应用程序已关闭。这意味着我不需要手动将服务绑定到任何内容。那么...它究竟是如何被触发的?我尝试添加了intent-filters,但我尝试过的都没有起作用。
以下是我尝试过的intent-filters列表...我尝试了很多,因为没有一个有效。
 <receiver
        android:name=".broadcastReceiver.YoutubeReceiver"
        android:enabled="@bool/youtubeBroadcast"
        android:exported="@bool/youtubeBroadcast"
        tools:ignore="ExportedReceiver">
        <intent-filter>

             <action android:name="com.android.youtube.metachanged"/>
             <action android:name="com.google.android.youtube.onPlaybackStateChanged"/>
             <action android:name="com.google.android.youtube.onplaybackstatechanged"/>
             <action android:name="com.google.android.youtube.player.YouTubePlayer.OnInitializedListener"/>
             <action android:name="com.google.android.youtube.player.YouTubePlayer.PlaybackEventListener"/>
             <action android:name="com.google.android.youtube.player.YouTubePlayer.OnFullscreenListener"/>
             <action android:name="com.google.android.youtube.player.YouTubePlayer.PlayerStateChangeListener"/>

       </intent-filter>
</receiver>

你是否标记了你的接收器 android:exported="true"?你应该在问题中写下整个接收器对象,而不仅仅是操作。 - pantos27
我认为这不会是一个问题,因为android:exported=true是默认设置。 - Dan
太棒了。祝你好运。 - pantos27
@Dan,你有没有成功获取其他应用程序播放的媒体元数据的运气? - Udayan
1个回答

0

我认为没有办法做到这一点。如果没有获得任何关键权限,这将是一个相当重大的安全问题,尤其是在没有获得任何关键权限的情况下。

至于Musixmatch,我认为他们只是读取您的音乐应用程序的通知标题(这是您在首次运行应用程序时授予的许可),然后猜测正在播放的歌曲。这也是为什么在从另一个应用程序播放媒体时,歌词不会同步的原因。

编辑:这可能值得一试 https://developer.android.com/reference/android/media/session/MediaSessionManager#addOnActiveSessionsChangedListener(android.media.session.MediaSessionManager.OnActiveSessionsChangedListener,%2520android.content.ComponentName)


你在编辑中所说的是他们正在使用的,这需要具有通知权限。 - Steve M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接