我理解之前曾经问过类似的问题,但没有一个能回答我的问题。
我正在开发一个队列系统,客户从自助服务终端获取票证并等待计数器拨打他们的号码,例如1023.我有.mp3格式的每个号码的声音文件。顺便说一句,该项目是使用php开发的。
这两个要求是声音文件必须根据数字播放,例如,如果当前数字是1023,则需要播放1.mp3,然后播放0.mp3等。
另一个问题是这些文件需要在前一个结束后播放一次。我设法完成了第一部分,但声音一起播放。请帮助我,下面是我的第一部分代码。
soundmanager.inc
public function getSound($in_value)
{
$value = $in_value;
switch ($value){
case "0":
$path = "sounds/0.mp3";
echo "<audio autoplay>";
echo "<source src=".$path." >";
echo "</audio>";
break;
case "1":
$path = "sounds/1.mp3";
echo "<audio autoplay>";
echo "<source src=".$path." >";
echo "</audio>";
break;
case "2":
$path = "sounds/2.mp3";
echo "<audio autoplay>";
echo "<source src=".$path." >";
echo "</audio>";
break;
//and some more
getSound.php
$word = isset($_POST['no']) ? $_POST['no'] : '';
$array = str_split($word);
$one = $array[0];
$two = $array[1];
$three = $array[2];
$four = $array[3];
$um = SoundManager::getInstance();
$um->getSound($one);
$um->getSound($two);
$um->getSound($three);
$um->getSound($four);
答案 0 :(得分:1)
你走了。
var audioFiles = ["http://www.magnac.com/sounds/onlyroadlarge.mp3", "http://www.magnac.com/sounds/paradiserowlarge.mp3", "http://www.magnac.com/sounds/lordslarge.mp3"];
var audio = document.createElement("audio");
var audioIdx = 0;
audio.addEventListener('ended', function () {
audioIdx++;
if (audioIdx >= audioFiles.length) audioIdx = 0;
this.src = audioFiles[audioIdx];
this.play();
});
audio.src = audioFiles[audioIdx];
audio.play();
答案 1 :(得分:0)
var i = 0;
var loop = setInterval(function() {
var audio;
switch (dispatch_units[i]) {
case 'ST39':
audio = new Audio('sounds/alert1.mp3');
break;
case 'ALS':
audio = new Audio('sounds/monty_engine.mp3');
break;
case 'ST38':
audio = new Audio('sounds/twotone.mp3');
break;
}
audio.play();
i++;
if(i<=total_units) {
clearInterval(loop);
}
}, 5000);