2017-05-12 6 views
1

私は話しているボットatmを作っています。しかし、サウンドファイルは互いに追い越されます。彼らは同時に演奏します。私はこれを処理することはできません。どのように私は順番にそれらを再生することができます、1つを完了すると、別のプレイする必要があります...その後、私のボットは話すことができます...あなたは私にコードの例を教えてくれますか?おかげで...ここプログラムされたオーディオファイルを順番に再生するにはどうすればよいですか?

は私のコードです...私が欲しいもの

は、オーディオが私に「MEH」またはそのような何かを言うべきです。私はそれが話して欲しい...

ありがとう!

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
<form action="" method="post"> 
    <input name="deger" type="text" value=""> 
    <input type="submit"> 
</form> 

<?php 

$m="m"; 
$e="e"; 
$r="r"; 
$h="h"; 
$a="a"; 
$b="b"; 

if (strpos($_POST["deger"], $m) !== false) { 
    echo "<script>var birdSound = new Audio('m.wav'); 
birdSound.loop = false; 
birdSound.play(); 
</script>"; 

} 
// 
if (strpos($_POST["deger"], $e) !== false) { 
    echo "<script>var birdSound = new Audio('e.wav'); 
birdSound.loop = false; 
birdSound.play(); 
</script>"; 

} 
// 

if (strpos($_POST["deger"], $h) !== false) { 
    echo "<script>var birdSound = new Audio('h.wav'); 
birdSound.loop = false; 
birdSound.play(); 
</script>"; 

} 
?> 


</body> 
</html> 
+0

http://stackoverflow.com/questions/42049639/preload-mp3-file-in-queue-to-avoid-any-delay-in-playing-the-next-file-in-queueを参照してください。/ – guest271314

答えて

0

これは演奏をエンキューするための基本的な考えである:現在のオーディオが終了したときに知っている「エンド」イベントを使用しました。

var audioFiles= ["a.wav", "b.wav", "c.wav", ... ]; 

function playNext() { 
    if (audioFiles.length) { 
    var sound = new Audio(audioFiles.shift()); 
    sound.addEventListener("ended", playNext); 
    } 
} 

playNext(); 
+0

しかし、私はそれが私のPHPスクリプトで動作します。私がタイプm、e、hを入力すると、javascriptは(m、e、h)の文字を入力し、ボットは(MEH)と言うべきであることを理解する必要があります...私はこれを行う方法を見つけることができません... wavオーディオのリストを再生したくない、私はスクリプトやプログラムされたオーディオファイルを順番に再生したい...これは可能ですか? –

関連する問題