11486 sujets

JavaScript, DOM et API Web HTML5

Salut à tous !

Je vous explique mon problème en Bref :

J'ai 6 sons : 3 feminins : -1 chuchoté -1normal -1crié
et 3 masculin: -1 chuchoté -1normal -1crié

A la fin, j'aimerais que le lecteur me lise 3 sons ( 1 de chaque type ) et random parmi feminin ou masculin

ex: crié masculin / chuchoté feminin / normal feminin

Avec l'aide de Parsimoni ( dsl pour l'orthographe), j'ai essayé de recupérer un petit bout de code pour faire tout ça: j'arrive à faire 2 sons à la suite mais pas le 3eme ..

Bon le code est pas opti mais le voila Smiley ravi :


<button id="startButton" type="button" onclick="startAll();">Start</button>


<div id="playlist">
	<!-- Son Femme -->
	<audio id="11" src="http://langues.fr/test/P001f01.mp3"></audio>
	<br>
	<audio id="12" src="http://langues.fr/test/P001fc01.mp3"></audio>
	<br>
	<audio id="13" src="http://langues.fr/test/P001fcr01.mp3"></audio>


	<!-- Son Homme-->
	<audio id="21" src="http://langues.fr/test/P001m01.mp3"></audio>
	<br>
	<audio id="22" src="http://langues.fr/test/P001mc01.mp3"></audio>
	<br>
	<audio id="23" src="http://langues.fr/test/P001mcr01.mp3"></audio>
</div>



<script>
var aleatoireFinal= new Array();
//je fais mon premier random et je le met dans le tableau
aleatoireHF=Math.floor(Math.random() * 2) + 1;  // random entre 1 et 2
aleatoireTon=Math.floor(Math.random() * 3) + 1; // random entre 1 et 3
aleatoireFinal[0]= aleatoireHF+""+aleatoireTon;
// je fais ma boucle pour remplir les 2 autre cases
for(i=0;i<2;i++){
	//je refais un random
	aleatoireHF=Math.floor(Math.random() * 2) + 1;  // random entre 1 et 2
	aleatoireTon=Math.floor(Math.random() * 3) + 1; // random entre 1 et 3
	//tant que ce nombre est deja dans mon tableau, je refais un random
	while( (aleatoireHF+""+aleatoireTon) == aleatoireFinal[ i] || aleatoireTon== aleatoireFinal[ i].charAt(1) )
	{
		aleatoireHF=Math.floor(Math.random() * 2) + 1;  // random entre 1 et 2
		aleatoireTon=Math.floor(Math.random() * 3) + 1; // random entre 1 et 3
	}
	aleatoireFinal[i+1]= aleatoireHF+""+aleatoireTon;
}	
//A ce stade jai mon tableau avec mes 3 sons différents : aleatoireFinal[0]  aleatoireFinal[1]  aleatoireFinal[2]


function playNext()
{
	document.getElementById(aleatoireFinal[1]).play();

}

function startAll()
{
	document.getElementById(aleatoireFinal[0]).play();
}

function init()
{
    document.getElementById(aleatoireFinal[0]).addEventListener("ended",playNext,false);
}

window.addEventListener("load",init,false);


</script>



Si quelqu'un peut m'aider Smiley biggrin

Amicalement,
Modifié par enius76 (30 Jul 2014 - 15:41)
Bpon j'ai trouvé un moyen en ajoutant un autre addEventListener qui lance un playNext2...
mais bon c'est un peu crado nn?



function playNext()
{
	document.getElementById(aleatoireFinal[1]).play();

}
function playNext2()
{
	document.getElementById(aleatoireFinal[2]).play();

}
function startAll()
{
	document.getElementById(aleatoireFinal[0]).play();
}

function init()
{
    document.getElementById(aleatoireFinal[0]).addEventListener("ended",playNext,false);
    document.getElementById(aleatoireFinal[1]).addEventListener("ended",playNext2,false);
}