HTML5 Audio: Comment lire uniquement une partie sélectionnée d'un fichier audio (sprite audio)?

Je suis en train de travailler sur un iOS métronome web app. Depuis le navigateur safari mobile ne peut jouer un son à un momentje suis d'essayer de créer une piste audio "sprite' - où je peux utiliser les différents segments d'une seule piste audio pour générer des sons différents. J'ai un 1 deuxième clip avec 2 demi-seconde sons.

<audio id="sample" src="sounds.mp3"></audio>

<a href="javascript:play1();">Play1</a>
<a href="javascript:play2();">Play2</a>
<a href="javascript:pauseAudio();">Pause</a>

<script>
var audio = document.getElementById('click');

function play1(){
    audio.currentTime = 0;
    audio.play();

    //This is the problem area
    audio.addEventListener('timeupdate', function (){
        if (currentTime >= 0.5) {
            audio.pause();
        }
    }, false);
}   

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

function pause(){
    audio.pause();
}
</script>

Voir sur JSFiddle.

Comme vous pouvez le voir, j'ai tenté d'utiliser le "timeupdate' événement (jPlayer exemple) avec en vain.

J'ai vu Remy Sharp post sur audio spritesmais (A) je n'ai pas réussi à le faire fonctionner pour moi, et (B) je préfère rester à l'écart à partir d'une bibliothèque de dépendance.

Des idées? Merci d'avance pour votre aide!


Mise à jour

Je maintenant avoir de travail à l'aide de 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();
}

Il y a quelques problèmes avec la séquence et nettoyage des intervalles, mais pour mon but, cela semble fonctionner.

JSFiddle

Merci!

P. S. Si quelqu'un a une solution pour cela, il pourrait être utilisé dans les Jeux et l'Interface Audio FX.

source d'informationauteur Josiah