You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发类Spotify Car Thing的Android应用,能否读取当前播放媒体信息?

Android应用读取当前播放媒体信息的可行性与实现方案

可以,Android提供了成熟的API支持应用读取设备上当前播放的媒体信息并展示,以下是具体的实现思路和关键步骤:

  • 通过MediaSessionManager监听活跃媒体会话
    Android 5.0(API 21)及以上引入的MediaSessionManager是核心工具,它能帮你获取设备上活跃的媒体会话。你需要先获取该服务实例,再注册监听回调来捕获会话变化:

    val mediaSessionManager = getSystemService(MEDIA_SESSION_SERVICE) as MediaSessionManager
    val listener = object : MediaSessionManager.OnActiveSessionsChangedListener {
        override fun onActiveSessionsChanged(sessions: List<MediaController>) {
            // 取第一个活跃的媒体会话(通常是当前正在播放的)
            sessions.firstOrNull()?.let { controller ->
                // 从会话中提取媒体元数据
                val metadata = controller.metadata
                val songTitle = metadata.description.title?.toString()
                val albumCover = metadata.description.iconBitmap
                // 这里将数据更新到你的UI组件即可
            }
        }
    }
    // 传入媒体按钮接收组件(可自定义BroadcastReceiver或指定当前Activity)
    val componentName = ComponentName(this, MediaButtonReceiver::class.java)
    mediaSessionManager.addOnActiveSessionsChangedListener(listener, componentName)
    
  • 权限配置与用户授权

    • Android 10(API 29)及以上:需要在Manifest中声明android.permission.READ_MEDIA_PLAYBACK_STATE权限,并动态申请。
    • Android 9(API 28)及以下:需要声明android.permission.ACCESS_NOTIFICATION_POLICY权限,同时引导用户前往系统设置开启通知访问权限,否则无法获取媒体会话信息。
  • 获取实时播放数据与控制媒体
    通过MediaController不仅能读取媒体元数据,还能通过其TransportControls实现播放、暂停、切歌等控制操作:

    // 监听播放状态和元数据变化
    controller.registerCallback(object : MediaController.Callback() {
        override fun onMetadataChanged(metadata: MediaMetadata?) {
            // 实时更新歌曲标题、封面等UI内容
        }
    
        override fun onPlaybackStateChanged(state: PlaybackState?) {
            // 根据播放状态(播放/暂停/缓冲等)更新控制按钮状态
        }
    })
    
    // 媒体控制示例
    val transportControls = controller.transportControls
    transportControls.play()
    transportControls.pause()
    transportControls.skipToNext()
    

内容的提问来源于stack exchange,提问作者0324bence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:37:15