Skip to content

Some live streams (html5) buffer forever on Safari iOS 17.4 #1711

Open
@bikubi

Description

@bikubi

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 receive canplaythrough, but suspend 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions