HTML 5 Player stops abruptly
Reported by
himank...@gmail.com,
Sep 20
|
||||
Issue descriptionTHIS TEMPLATE IS FOR FILING BUGS ON THE ANDROID SYSTEM WEBVIEW. GENERAL WEB BUGS SHOULD BE FILED USING A DIFFERENT TEMPLATE! Device name: Asus Zenfone Selfie Z00_UD Android version: 6.0.1 WebView version (from system settings -> Apps -> Android System WebView): 70.0.3538.17 Application: Tasker Application version: Test app url provided below URLs (if applicable): https://drive.google.com/file/d/1MaDl731YVqxRFSaqivOAgc7zW0mghGwy/view?usp=drivesdk Steps to reproduce: (1) Download the test app from the url (2) Play the streams. Few streams stop abruptly. (3) Press play 3-4 times and the streams will start working Expected result: the audio attribute preload=metadata should have loaded only metadata. And if the metadata expires or if the prefetched data is outdated, the html5 player should have automatically refreshed the stream and start playing, or it should have simply continued. The same result is seem with preload=auto Actual result: The stream starts playing and stops after few seconds. You may test the same in a browser. Note how Firefox intelligently handles each stream: http://innovatenewideas.blogspot.com/2018/09/internet-radio.html?m=1
,
Sep 21
,
Sep 21
In the past when this fails it's due to the server sending a different content-length upon resume and Chrome can't ensure the new data belongs with the old stream. =>hubbe who's looked into these in the past.
,
Sep 21
On playing/resuming if the content-length changes chrome should be able to refresh the metadata and resume playing the stream on it's own, provided the stream url isn't broken. It could identify the stream with the url and not wholly rely on metadata as it may vary as stations constantly upload new tracks. Also there could be a tag that displays metadata info without the need for unnecessary javascript.
,
Sep 21
I tried this on desktop, but the provided URL doesn't seem to work for some reason. However, if I isolate one of the <audio> tags, I can sort of see what the problem is. With preload=metadata, the <audio> tag tries to load a little bit of data from the stream to see what kind of stream it is. However, it noticed that the stream is not seekable, so it tries to keep it open so that it can resume loading when you press play. Eventually, the connection gets closed anyways, and when you press play, you only get the preloaded part. Using preload=none solves many of these issues, as the audio tag won't try to open the source at all. Chrome could probably do a better job of supporting these kind of always-changing media resources, but an MSE based solution will always work better I think.
,
Dec 1
AFAIK, preload=none is the right workaround for this case, and so I don't think there is anything to do here.
,
Dec 1
Preload=none doesn't solve the problem and isn't a valid workaround as the play button needs to be tapped at least 2-3 times in order for it to start playing. On the first tap, it loads the metadata and only after it loads the metadata the play button will respond. Quite a frustrating experience. It feels as if the stream is broken and the end user navigates away from the player. On Sat, Dec 1, 2018, 6:00 AM hu… via monorail < monorail+v2.1990096764@chromium.org wrote:
,
Dec 3
I tried the URL given in chrome on android, which seems to behave the same as chrome on my desktop. Some radio stations get a skip after a few seconds, some fail and has to be re-started by pressing the play button. None of them needed to be pushed more than twice. There may be a second problem here that is also causing problems for you, but I'm reasonably certain that preload=none is going to work better than any other form of preload for this particular use case, so I would recommend updating the app (and the HTML page) to use preload=none if possible. |
||||
►
Sign in to add a comment |
||||
Comment 1 by ctzsm@chromium.org
, Sep 21