mirror of
https://github.com/androidx/media.git
synced 2025-05-11 01:31:40 +08:00

We have an existing logic for recovering the `AudioTrack` from the [ERROR_DEAD_OBJECT](https://developer.android.com/reference/android/media/AudioTrack#ERROR_DEAD_OBJECT) throws. However, this only applies to the situation when the `writtenEncodedFrames > 0`. However, we have a case when `ERROR_DEAD_OBJECT` throws while writing PCM data. When the `tunneling` is turned on, the `AudioTrack` is set the flag `AUDIO_OUTPUT_FLAG_HW_AV_SYNC`, and further because of this flag, it is forced the flag `AUDIO_OUTPUT_FLAG_DIRECT`. When the platform invalidates the `AudioTrack`, the `AudioTrack` won't be restored by the platform due to `AUDIO_OUTPUT_FLAG_DIRECT` flag, and `ERROR_DEAD_OBJECT` is thrown. Issue: androidx/media#431 PiperOrigin-RevId: 562582451
ExoPlayer module
This module provides ExoPlayer
, the Player
implementation for local media
playback on Android.
Getting the module
The easiest way to get the module is to add it as a gradle dependency:
implementation 'androidx.media3:media3-exoplayer:1.X.X'
where 1.X.X
is the version, which must match the version of the other media
modules being used.
Alternatively, you can clone this GitHub project and depend on the module locally. Instructions for doing this can be found in the top level README.