Hey, folks. I have some device specific sound issues I'm trying to pin down. My app uses a handful of sound channels (up to 8 or so, no danger of reaching the limit of 32) and always uses stop() to end them, as opposed to pause() which doesn't free the channel. One channel is used to loop a background sound. I've had strange issues with looping, so I loop that one manually. My app checks to see the position of that channel, and moves it back to the start if it's getting close to the end. That generally works just fine. But...
On some devices, including a new Galaxy Tab A, sounds will occasionally quit. Especially when one channel starts, another may go silent. That can include the looping background sound of flowing water. I've confirmed that when that happens, the background channel still claims to be playing at the same volume (isPlaying(), getPosition() and getVolume() all return expected values), yet the sound isn't audible. Then starting another sound on another channel can cause the background sound channel to stop claiming to be playing, so my code detects that and restarts it (replacing the background channel) and the sound resumes.
More briefly, channel_x:play() can cause channel_y to go silent while it supposedly isPlaying(), until channel_z:play() is called, at which time channel_y realizes it's no longer playing.
Has anyone else experienced this? I've only encountered this on the Galaxy Tab A, a relatively cheap new tablet. Perhaps this is just a hardware or OS issue.