我目前正在编写有关如何在HTML5中制作声卡的教程here。
我遇到问题的当前代码是:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8">
$(function() {
$("audio").removeAttr("controls").each(function(i, audioElement) {
var audio = $(this);
var that = this; //closure to keep reference to current audio tag
$("#doc").append($('<button>'+audio.attr("title")+'</button>').click(function() {
if(that.play()==true){
play.stop();
}else{
that.play();
}
}));
});
});
</script>
我试图让它只能一次播放一个声音。我也尝试通过调用that.stop()
来制作一个普通的停止按钮,但它不起作用。我也试图找出如何制作单独的数组,以便我可以组织声音。我尝试更改音频标签,如教程中讨论如何创建搜索该数组的数组。但我必须改变错误的代码行,因为新的数组永远不会起作用。
答案 0 :(得分:1)
要只允许一次播放一首声音,我会听DOM media events。
有几个事件会对你有所帮助。如:
如果你听这些,并保持一个全局标志告诉你媒体是否正在播放,你可以通过先检查这个标志来阻止你的其他按钮/链接播放声音。
赞成评论:
您需要的几乎所有代码都是JavaScript,而不是PHP。看看这个样本小提琴。
它将通用媒体事件侦听器注册到3个<audio>
标记,并分隔暂停,结束和播放事件处理程序以控制回放。当你收到一个停止/启动事件时,会切换一个全局布尔变量来告诉你是否应该允许另一个片段播放(我假设你只是禁用播放它们的按钮,或类似的东西)。
但是我已经添加了所有媒体事件,无论如何都会向你展示它们 - 它将有助于了解它们被解雇的时间和频率。它们是listed at MDC here:
(没有为使用AC / DC剪辑道歉:)