たくさんの自由帳

MediaControllerCompat#transportControlsでリピート、シャッフル操作する

投稿日 : | 0 日前

文字数(だいたい) : 924

AndroidKotlin
Twitterで共有GitHubで開く

本当かどうかは知りませんがメモとして置いておきます。

本題

Fragment/Activityに紐づけしたMediaControllerCompat
transportControls.setRepeatMode()transportControls.setShuffleMode()を呼んだのに、 repeatModeshuffleModeが変わらない問題

解決方法

private val callback = object : MediaSessionCompat.Callback() {
    /** リピートモード変更 */
    override fun onSetRepeatMode(repeatMode: Int) {
        super.onSetRepeatMode(repeatMode)
        // もしかして:この一行必須?
        mediaSessionCompat.setRepeatMode(repeatMode)
        if (repeatMode == PlaybackStateCompat.REPEAT_MODE_ALL) {
            // 無限ループループする
            exoPlayer.repeatMode = Player.REPEAT_MODE_ALL
        } else {
            // 同じ曲を何回も聞く。
            exoPlayer.repeatMode = Player.REPEAT_MODE_ONE
        }
    }
}

mediaSessionCompat.setRepeatMode(repeatMode)を呼んだら直った