@@ -20,9 +20,12 @@ import android.content.Context
20
20
import android.media.AudioAttributes
21
21
import android.media.AudioAttributes.CONTENT_TYPE_SONIFICATION
22
22
import android.media.AudioAttributes.USAGE_ASSISTANCE_SONIFICATION
23
- import android.media.MediaCodecList
24
23
import android.media.MediaPlayer
25
24
import 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
26
29
import androidx.xr.runtime.Session
27
30
import androidx.xr.scenecore.Entity
28
31
import androidx.xr.scenecore.PointSourceParams
@@ -151,10 +154,18 @@ private fun playSpatialAudioAtEntityAmbionics(session: Session, appContext: Cont
151
154
// [END androidxr_scenecore_playSpatialAudioAmbionics]
152
155
}
153
156
154
- private fun detectSupport () {
157
+ @OptIn(UnstableApi ::class )
158
+ private fun detectSupport (context : Context ) {
155
159
// [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
+ }
159
170
// [END androidxr_scenecore_dolby_detect_support]
160
171
}
0 commit comments