监听QQ音乐等三方音乐播放的歌曲信息

监听QQ音乐等三方音乐播放的歌曲信息


fun init(context: Context) {

mAudioMg = context.getSystemService(Context.AUDIO_SERVICE)as AudioManager

mMediaMg =

context.getSystemService(AppCompatActivity.MEDIA_SESSION_SERVICE)as MediaSessionManager

mComponentName =

ComponentName(context.packageName, HnNotificationListenerService::class.java.name)

mAudioMg?.registerAudioPlaybackCallback(object : AudioManager.AudioPlaybackCallback() {

override fun onPlaybackConfigChanged(configs: MutableList?) {

super.onPlaybackConfigChanged(configs)

Log.i(

"guotz",

                "MusicControlManager onPlaybackConfigChanged start !! configs=${configs}"

            )

//监听变化

            mMediaMg?.getActiveSessions(mComponentName)?.let {

                traversal(it, "MusicControlManager onPlaybackConfigChanged --->")

}

        }

}, null)

//主动查询

    mMediaMg?.getActiveSessions(mComponentName)?.let {

        traversal(it, "MusicControlManager init --->")

}

}


private fun traversal(controllerList: List, tags: String) {

var currentTime = System.currentTimeMillis()

var musicVolume =mAudioMg?.getStreamVolume(AudioManager.STREAM_MUSIC)

for (controllerin controllerList) {

var metaData = controller.metadata

        var title = metaData?.getString(MediaMetadata.METADATA_KEY_TITLE)

       var artist = metaData?.getString(MediaMetadata.METADATA_KEY_ARTIST)

Log.i(

"guotz",

            "$tags! isMusicActive=${mAudioMg?.isMusicActive} state=${convertStates(controller.playbackState?.state)}, title=${title}, 歌手=${artist},musicVolume=$musicVolume,packageName=【${controller.packageName}】"

        )

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容