2012-12-05 7 views
21

Obecnie pracuję na HTML5 projektu.HTML5 audio nie gra wiele razy w Android 4.0.4 urządzenia Native Browser

Jest to problem na gra sam plik dźwiękowy wielokrotnie na tej samej stronie w Android natywnej przeglądarce. Problem ten został zauważony w wersji Android ICS 4.0.4. W tej wersji audio będą odtwarzane raz, ale kiedy inicjowany ponownie audio nie będą odtwarzane. To samo jest doskonale działa w Android ICS 4.0.3 wersję i na nowszych 4.1.1 wersji.

Testowane urządzenia:
Samsung Galaxy Tab (Android 4.0.4): Gra po raz pierwszy dopiero wtedy to nie gra
HTC One (Android 4.0.4): Gra po raz pierwszy dopiero wtedy nie odgrywa
Sony Tab (Android 4.0.3): perfekcyjnie, odtwarzanie audio wielokrotnie
HTC Sensation (Android 4.0.3): perfekcyjnie, odtwarzanie audio wielokrotnie
Samsung Nexus telefonu (Android 4.1.1): perfekcyjnie, Odtwarzanie audio wielokrotnie

oparciu o rozeznanie w Internecie wydaje się jak problem z wersji Android 4.0.4

Proszę mi pomóc znajdź rozwiązanie, które sprawi, że będzie działało na wszystkich urządzeniach.

Please use this W3 Schools HTML5 audio link for try outs

+0

Mam ten sam problem w moim projekcie. –

+0

Ja też miałem podobny problem, mam nadzieję, że społeczność może pomóc. – Deepukjayan

+0

Czy nie byłoby w twoim najlepszym interesie również opublikowanie adresu demo w aplikacji HTML5, aby inni mogli go przetestować? Przynajmniej dopóki ktoś nie będzie w stanie na nie odpowiedzieć. Trochę trudno odtworzyć inaczej. –

Odpowiedz

6

Mam roztwór roboczy ..

Problem polegał na Androidzie 4.0.4 przeglądarka gdy dźwięk jest odtwarzany raz (zakończony) wtedy czas wyszukiwania nie zostaną zresetowane do pozycji wyjściowej , pozostanie na samym końcu. Tak więc ustawiając currentTime = 0 po tym, jak dźwięk zakończył się, zresetuje go do pozycji początkowej iw ten sposób możemy odtworzyć ten sam dźwięk tyle razy, ile chcemy, bez odświeżania strony.
Przetestowany działa doskonale na wszystkich urządzeniach.

HTML kod:

<audio id="movie_audio"> 
    <source src="my_audio_location/movie_audio.mp3" type='audio/mpeg; codecs="mp3"' /> 
    <source src="my_audio_location/movie_audio.ogg" type='audio/ogg; codecs="vorbis"' /> 
</audio> 

kod JavaScript:

var movie_audio = document.getElementById('movie_audio'); 
movie_audio.addEventListener('ended', function(){ 
    movie_audio.currentTime = 0; 
} 
0

Jeśli powyższe rozwiązanie nie zadziała, spróbuj tego.

audio_element.addEventListener('timeupdate', function() { 
if (audio_element.currentTime >= (audio_element.duration - 0.3)) { 
    audio_element.currentTime = 0; 
    audio_element.pause(); 
} 
}, false); 

Uwaga: Ustawiamy pasek wyszukiwania w pozycji początkowej tuż przed końcem dźwięku.

1

Działa to dla mnie:

var movie_audio = document.getElementById('movie_audio'); 
movie_audio.addEventListener('ended', function(){ 
    movie_audio.load(); 
});