androidx / androidx/media

Audio sink error when setPreferredAudioDevice with offload mode enable

Open
#611 3 comments 0 reactions 1 assignee View on GitHub

@microkatz is already working on this.

Since Aug 30, 2023.

bug needs triage
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

Version

Media3 1.1.1

More version details

No response

Devices that reproduce the issue

Android SDK33

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Not tested

Reproduction steps
  1. Connect the Bluetooth headset to the device.
  2. Enable offload mode in app.
  3. start playback opus media 5 seconds, then pause 1s, then use setPreferredAudioDevice(AudioDeviceInfo.TYPE_BUILTIN_SPEAKER) to switch device, then resume playback 5s, then stop.
Expected result

the media play 5s using bt-headset, pause 1s, then play 5s using speaker, then stop.

Actual result

the media play 5s using bt-headset, pause 1s, then no voice can be heard in both bt-headset and speaker for 6s(1s for pause), then stop.
When disable Offload mode, the result is as expected.
And I confirm OPUS offload playback is supported on my device.
The logcat shows Audio sink error.
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: Audio sink error
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: androidx.media3.exoplayer.audio.AudioSink$WriteException: AudioTrack write failed: -6
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.audio.DefaultAudioSink.writeBuffer(DefaultAudioSink.java:1164)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.audio.DefaultAudioSink.processBuffers(DefaultAudioSink.java:1056)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.audio.DefaultAudioSink.handleBuffer(DefaultAudioSink.java:978)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.audio.MediaCodecAudioRenderer.processOutputBuffer(MediaCodecAudioRenderer.java:712)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.bypassRender(MediaCodecRenderer.java:2246)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:811)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1047)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:522)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at android.os.Handler.dispatchMessage(Handler.java:102)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at android.os.Looper.loopOnce(Looper.java:205)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at android.os.Looper.loop(Looper.java:294)
08-21 18:40:26.352 7502 7547 E MediaCodecAudioRenderer: at android.os.HandlerThread.run(HandlerThread.java:67)

Media

Not applicable

Bug Report
  • You will email the zip file produced by adb bugreport to android-media-github@google.com after filing this issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.