2017-06-02 2 views
1

Lorsque le bouton de lecture est cliqué, je veux que le fichier mp3/ogg commence à jouer à partir de différents points aléatoires.Randomiser le point de début de lecture en html5 Audio on toggle

Il n'y a qu'un seul bouton et aucun lecteur visible pour que l'utilisateur bascule. C'est censé être comme un effet radio.

Je suis assez nouveau pour javascript alors j'ai besoin d'un peu d'aide. Je pense que je dois avoir un peu de code qui lui dit de sauter 10-30 au hasard dans le fichier. Mais je ne sais pas comment s'y prendre.

code ici:

<a onclick="javascript:toggleSound();"><li><i class="fa fa-play-circle" aria-hidden="true"></i></li></a> 

<audio id="audio" preload="auto"> 
<source src="audio/filename.mp3" type="audio/mpeg"/> 
<source src="audio/filename.ogg" type="audio/ogg"/> 

function toggleSound() { 
    var audioElem = document.getElementById('audio'); 
    if (audioElem.paused) 
    audioElem.play(); 
    else 
    audioElem.pause(); 
+0

S'il vous plaît vérifier [cette] (https://stackoverflow.com/q/9563887/1267304) out – DontVoteMeDown

+1

Quelque chose comme 'audioElem.currentTime = parseInt (Math.random() * 20) + 10;' juste avant 'play()' –

Répondre

0

Essayez ceci:

function toggleSound() { 
    var audioElem = document.getElementById('audio'); 
    if (audioElem.paused) { 
    audioElem.currentTime = parseInt(Math.random() * 20) + 10; 
    audioElem.play(); 
    } 
    else 
    audioElem.pause(); 
} 
+0

merci! Cela semble aller de l'avant la première fois que vous jouez-pause-play, mais si vous le faites une seconde fois, il recommence depuis le début. Track est de 1.30s pensez-vous que c'est pourquoi? – roserogue

+0

J'ai ajouté ceci qui semble fonctionner audioElem.currentTime = parseInt (Math.random() * 60) + 10; – roserogue

+0

'parseInt (Math.random() * 20) + 10' devrait produire un nombre dans la plage de 10 à 30. Vous avez simplement étendu la plage à 10-70. Je ne sais pas comment cela résout le problème que vous décrivez, mais tant que cela fonctionne pour vous :) –