Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem with duration value of HTML5 audio element in iOs

I'm developing a web app for iOs device, but I have a problem with the html5 audio tag... I designed a custom audio player, and I control the song with javascript functions. With safari desktop the app works well, but on safari mobile it doesn't recognize the duration of the audio; the value of the duration property is NaN. I have to play, stop and replay the audio for retrieve the correct value. Probably the cause is that the media preload is disabled on safari mobile... Is there a way to read the correct value at the first shot?

like image 286
diegocstn Avatar asked Aug 30 '11 16:08

diegocstn


2 Answers

This is a bug in iOS... even inside the function that gets called on the onloadedmetadata event, you MAY STILL get NaN.

In my case, this happens at random when the user selects a new mp3 and the code dynamically sets the src property. The audio plays fine, yet SOMETIMES, the duration returns NaN, screwing up any progress indicator that depends on that value.

like image 61
Juan Avatar answered Nov 08 '22 18:11

Juan


The medata is available after this event has fired:

 loadedmetadata

More info

https://developer.mozilla.org/en/Introducing_the_Audio_API_Extension

like image 44
Mikko Ohtamaa Avatar answered Nov 08 '22 18:11

Mikko Ohtamaa