google / google/ExoPlayer

Support gapless playback of Ogg Vorbis

Open
#3,470 5 comments 0 reactions 1 assignee Claimed by @andrewlewis View on GitHub
enhancement
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

### Issue description
We are facing problems with click noises when playing a sequence of ogg/vorbis files with the ExoPlayer.
The interesting thing is, that I was able to create a quick&dirty player with Android's decoding-APIs where the playback is absolutely gapless. So what is the difference to the ExoPlayer and is there a way to avoid those clicking sounds? Eg. do I have to pass some configuration or override the `DynamicConcatenatingMediaSource` in a way to avoid this?

Note: There are several issues, including https://github.com/google/ExoPlayer/issues/497 where I actually stated that the playback is gapless. Most of the time this is true, but in some cases the transition between files result in a click noise.

### Reproduction steps

1. Clone my test-app from https://github.com/th3hamm0r/exoplayer-gapless-test
2. Compare the sound of the ExoPlayer vs. the custom player. Both implementations play two 10s files created from gapless wav-files.
3. In my tests the `ExoPlayer` produced a click noise when transitioning (after 10s), the `CustomPlayer` did not.

Note: These two files also play gapless with several audio tools (Audacity, Aqualung player,...).

### Link to test content
Note: The custom player is a quick&dirty solution created from several sources with some deprecated APIs and so on...

https://github.com/th3hamm0r/exoplayer-gapless-test

### Version of ExoPlayer being used
2.5.4

### Device(s) and version(s) of Android being used
Tested on multiple devices, eg. Nexus 5 (6.0.1), Nexus 5X (8.0), Nexus 9 (7.1.1), Nokia 6,...

### A full bug report captured from the device
--

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.