Buduję grę, w której plik wav jest odtwarzany po kliknięciu - w tym przypadku jest to dźwięk pistoletu "bang".Dźwięk HTML5 - odtwarzaj dźwięk wielokrotnie po kliknięciu, niezależnie od tego, czy poprzednia iteracja zakończyła się.
Problem polega na tym, że jeśli szybko kliknę, dźwięk nie będzie odtwarzany raz dla każdego kliknięcia - to tak, jakby kliknięcia były ignorowane podczas odtwarzania dźwięku, a po zakończeniu dźwięku znowu zaczęły nasłuchiwać kliknięć . Opóźnienie wydaje się być około jednej sekundy długo, więc figura jeśli ktoś kliknie 4 lub 5 razy na sekundę, chcę 5 grzywkę, a nie 1.
Tu jest mój HTML:
<audio id="gun_sound" preload>
<source src="http://www.seancannon.com/_test/audio/gun_bang.wav" />
</audio>
Oto moje JS:
$('#' + CANVAS_ID).bind(_click, function() {
document.getElementById('gun_sound').play();
adj_game_data(GAME_DATA_AMMO_ID, -1);
check_ammo();
});
Pomysły?
To wygląda obiecująco. Obawiam się tylko, że podczas tworzenia elementu będzie występować opóźnienie między kliknięciem i dźwiękiem. Czy nadal potrzebuję mojego początkowego znacznika 'audio'? Zakładam, że tak to jest preinstalowane? – AlienWebguy
Hah wszystkie lęki obalone, dzięki! Teraz kiedy JQuery zacznie wspierać te funkcje, więc mogę zrobić '$ (selektor '). Play()' i co tam? – AlienWebguy
To jest przesada. Po prostu ustaw 'currentTime' na' 0': http://stackoverflow.com/a/7005562/352796 – katspaugh