The issue we’re seeing is that occasionally for some limited device (those with 512MB of memory), a live HLS-TS stream will fail to start playback. It will get stuck in buffering state. In monitoring the bufferingInfo field, the video node will progress through the percentages as normal and hit 100%.
{
actualStart: 0
isUnderrun: false
percentage: 100
prebufferDone: true
}
At this point we get our first downloadedSegment change event, which comes through with expected values:
{"bitrateBps":2500000,"bufferLevel":0,"bufferSize":0,"downloadDuration":2540,"height":540,"ipAddress":"","path":"","segDuration":500,"segSequence":1,"segSize":1504752,"segStartTime":5.5,"segStreamBandwidth":2500,"segType":0,"segUrl":"``https://obfuscated.com/segment_182359814c.ts","status":0,"width``":960}
The player then goes into a buffering loop where it will emit a ton of bufferingInfo changes that alternate between 33 and 100 percent, all with the prebufferDone field set to true and isUnderrun set to false. There are no more downloadedSegment changes.
The player can be destroyed and exited, but telling the video to play doesn’t work. The player state stays as buffering. This happens about 1 time out of 20, usually shortly after the application has started up. Exiting the player and then returning usually fixes lets playback start up. We have not observed the issue on more powerful devices that have more than 512MB of memory.
Is there anything we can do to get it out of this loop, or better yet, prevent it from happening?
