@@ -20,9 +20,12 @@ import android.content.Context
2020import android.media.AudioAttributes
2121import android.media.AudioAttributes.CONTENT_TYPE_SONIFICATION
2222import android.media.AudioAttributes.USAGE_ASSISTANCE_SONIFICATION
23- import android.media.MediaCodecList
2423import android.media.MediaPlayer
2524import android.media.SoundPool
25+ import androidx.annotation.OptIn
26+ import androidx.media3.common.C
27+ import androidx.media3.common.util.UnstableApi
28+ import androidx.media3.exoplayer.audio.AudioCapabilities
2629import androidx.xr.runtime.Session
2730import androidx.xr.scenecore.Entity
2831import androidx.xr.scenecore.PointSourceParams
@@ -151,10 +154,18 @@ private fun playSpatialAudioAtEntityAmbionics(session: Session, appContext: Cont
151154 // [END androidxr_scenecore_playSpatialAudioAmbionics]
152155}
153156
154- private fun detectSupport () {
157+ @OptIn(UnstableApi ::class )
158+ private fun detectSupport (context : Context ) {
155159 // [START androidxr_scenecore_dolby_detect_support]
156- val codecInfos = MediaCodecList (MediaCodecList .ALL_CODECS ).codecInfos
157- fun supportsEac3SDecoding () = codecInfos.any { ! it.isEncoder && it.supportedTypes.any { it == " audio/aec3" } }
158- fun supportsAc4Decoding () = codecInfos.any { ! it.isEncoder && it.supportedTypes.any { it == " audio/ac4" } }
160+ val audioCapabilities = AudioCapabilities .getCapabilities(context, androidx.media3.common.AudioAttributes .DEFAULT , null )
161+ if (audioCapabilities.supportsEncoding(C .ENCODING_AC3 )) {
162+ // Device supports playback of the Dolby Digital media format.
163+ }
164+ if (audioCapabilities.supportsEncoding(C .ENCODING_E_AC3 )) {
165+ // Device supports playback of the Dolby Digital Plus media format.
166+ }
167+ if (audioCapabilities.supportsEncoding(C .ENCODING_E_AC3_JOC )) {
168+ // Device supports playback of the Dolby Digital Plus with Dolby Atmos media format.
169+ }
159170 // [END androidxr_scenecore_dolby_detect_support]
160171}
0 commit comments