1717package com.ichi2.anki.cardviewer
1818
1919import android.content.Context
20- import android.media.AudioAttributes
2120import android.media.AudioManager
2221import android.media.MediaPlayer
2322import android.net.Uri
2423import androidx.annotation.CheckResult
24+ import androidx.annotation.OptIn
2525import androidx.annotation.VisibleForTesting
2626import androidx.core.net.toUri
27- import androidx.media.AudioFocusRequestCompat
28- import androidx.media.AudioManagerCompat
27+ import androidx.media3.common.AudioAttributes
28+ import androidx.media3.common.C.AUDIO_CONTENT_TYPE_MUSIC
29+ import androidx.media3.common.audio.AudioFocusRequestCompat
30+ import androidx.media3.common.audio.AudioManagerCompat
31+ import androidx.media3.common.util.UnstableApi
2932import com.ichi2.anki.AnkiDroidApp
3033import com.ichi2.anki.CollectionManager.withCol
3134import com.ichi2.anki.common.annotations.NeedsTest
@@ -39,6 +42,7 @@ import kotlin.coroutines.resume
3942import kotlin.coroutines.resumeWithException
4043
4144/* * Player for (`[sound:...]`): [SoundOrVideoTag] */
45+ @OptIn(UnstableApi ::class )
4246@NeedsTest(" CardSoundConfig.autoplay should mean that video also isn't played automatically" )
4347class SoundTagPlayer (
4448 private val soundUriBase : String ,
@@ -49,7 +53,7 @@ class SoundTagPlayer(
4953 private val music =
5054 AudioAttributes
5155 .Builder ()
52- .setContentType(AudioAttributes . CONTENT_TYPE_MUSIC )
56+ .setContentType(AUDIO_CONTENT_TYPE_MUSIC )
5357 .build()
5458
5559 /* *
@@ -118,7 +122,7 @@ class SoundTagPlayer(
118122 } else {
119123 (soundUriBase + Uri .encode(tag.filename)).toUri()
120124 }
121- setAudioAttributes(music)
125+ setAudioAttributes(music.platformAudioAttributes )
122126 setOnErrorListener { mp, what, extra ->
123127 Timber .w(" Media error %d" , what)
124128 abandonAudioFocus()
0 commit comments