проблемы воспроизведения звуковых клипов с HTML5 Audio на iPhone - PullRequest
2 голосов
/ 05 октября 2011

У меня есть несколько mp3-клипов для воспроизведения на определенных мероприятиях в моем приложении HTML5. Там нет тега, скрипт создает аудио объекты в начале (по одному для каждого mp3) и загружает файлы. Когда мне нужно воспроизвести звук, я просто вызываю play () для одного из этих объектов.

Это прекрасно работает на рабочем столе Chrome, но очень противоречиво в моем iPod touch, в конце концов некоторые звуки перестают воспроизводиться, и я даже получаю предупреждения об ошибках.

Вот небольшой скрипт, который я настроил, чтобы увидеть проблему, он размещен на soundtest.staticloud.com , включая 3 аудиофайла, чтобы вы могли проверить его на iPhone / что угодно.

var snd = [];

window.onload = function() {
    for(var i = 0; i < 3; i++) {
        snd[i] = new Audio("snd" + i + ".mp3");
        snd[i].load();
    }
}

function sound(n) {
    snd[n-1].play();
}

Я что-то не так делаю?

1 Ответ

3 голосов
/ 05 октября 2011

У меня было множество проблем со звуком в iDevices ... что вам нужно сделать, это очистить последний проигранный клип перед началом следующего. Кроме того, у меня был только один аудиообъект, и я изменил бы источник, поэтому мое решение выглядело примерно так:

<html>
<body>
<audio></audio>
etc
</body>
<script type="text/javascript">
var sounds=[];

window.onload = function() {
    for(var i = 0; i < 3; i++) {
        sounds[i] = "snd" + i + ".mp3";
    }
}

function sound(n){
snd=document.getElementsByTagName("audio")[0];
snd.pause();  //-----------------PAUSE THE LAST (WHICH MAY BE LONG DONE)
snd.src='';   //-----------------BLANK SRC
snd.src=sounds[n-1];  //---------REPLACE WITH NEW SOUND
snd.load();
snd.play();
}
</script>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...