Аудио HTML5: как воспроизвести только выбранную часть аудиофайла (аудиоспрайт)?

Я работаю над сетью метронома iOS приложение. Поскольку мобильное сафари может воспроизводить только один звук за раз , Я пытаюсь создать «звуковой спрайт» - где я могу использовать разные сегменты одной звуковой дорожки для создания разных звуков. У меня есть 1-секундный клип с 2-мя полусекундными звуками.



Play1
Play2
Pause


См. Его на JSFiddle .

Как видите, я попытался использовать событие 'timeupdate' ( jPlayer example ) безрезультатно.

Я видел сообщение Реми Шарпа об аудиоспрайтах , но (A) мне не удалось заставить его работать на меня, и (B) я предпочел бы держаться подальше от библиотеки зависимость.

Есть идеи? Заранее благодарим за помощь!


Обновление

Теперь он работает с использованием setInterval :

function play1(){
    audio.currentTime = 0;
    audio.play();
    int = setInterval(function() {
        if (audio.currentTime > 0.4) {
            audio.pause();
            clearInterval(int);
        }
    }, 10);
}    

function play2(){
    clearInterval(int);
    audio.currentTime = 0.5;
    audio.play();
}

Есть некоторые проблемы с последовательностью и установкой / очисткой интервалов, но для моей цели - кажется для работы.

JSFiddle

Спасибо!

PS Если у кого-нибудь есть исправление для этого, его можно использовать в играх и интерфейсах Sound FX.

12
задан razlebe 9 May 2011 в 21:35
поделиться