Open
Description
The Problem
Some radio streams buffer forever, never play.
This seems unrelated to
- http or https
- whether there are redirects to follow
- format (aac or mp3)
Reproducible Example
No response
Reproduction Steps
- clone the repo, serve it
- edit examples/radio/radio.js, replace one station with
http://chirpradio.org/stream
(wonderful station from Chicago). - visit examples/radio on iOS 17.4 Safari
- click play - it just idles
- DevTools network tab shows that the request is consuming bytes at the the expected rate/bandwidth
Possible Solution
Naive analysis:
- for some reason the initial Audio node (which is
load()
ed) doesn't receivecanplaythrough
, butsuspend
instead - the event queue is never kicked off
- the node is stuck in a suspended limbo
Naive solution (fork incoming)
- do not rely merely on
canplaythrough
- detect suspended ndoes
Better theoretical solution
Less complex Audio node setup?
Context
For some streams I tested, pre-following redirects helped. So maybe when the initial connection takes too long this trips up whatever changed in iOS 17.4.
Howler.js Version
v2.2.4
Affected Browser(s)/Versiuon(s)
Safari iOS 17.4