处理器音频JavaScript HTML5

时间:2015-05-20 17:43:12

标签: javascript jquery events audio

有一个js-script:

<script>
function start1() {
var audio = new Audio();
audio.src = URL.createObjectURL(document.getElementById('f1').files[0]);
audio.autoplay = true;
}
function start2() {
var audio = new Audio();
audio.src = URL.createObjectURL(document.getElementById('f2').files[0]);
audio.autoplay = true;
}
...
function stop() {
var audio = new Audio();
audio.stop();
}
</script>

和html代码:

<body>
<input type="file" id="f1"></input>
<input type="file" id="f2"></input>
...
<button onmousedown="start1()" onmouseup="stop()">1</button>
<button onmousedown="start2()" onmouseup="stop()">2</button>
...

通过脚本可以理解,他播放一个使用表单文件加载的声音文件。

但有两个问题:
1)要求声音仅在按下(onmousedown)的事件期间播放,并且在释放鼠标按钮时停止声音(onmouseup)。 现在声音播放到最后无论你是否点击鼠标按钮然后松开它都没关系(因为没有测试这个条件)。
2)还需要创建一个简化版本的脚本,因为处理函数应该是16个,但不能手动注册相同的每个函数。您必须创建一个生成的脚本来处理N个id(start1,start2等,f1,f2等)。

帮助修改代码,也可以完全编写jquery代码。这并不重要 谢谢。

2 个答案:

答案 0 :(得分:0)

这应该有效(未经测试):

<script> var a1 = new Audio(); var a2 = new Audio(); function start1() { a1.src = URL.createObjectURL(document.getElementById('f1').files[0]); a1.autoplay = true; } function start2() { a2.src = URL.createObjectURL(document.getElementById('f2').files[0]); a2.autoplay = true; } function stop() { a1.stop(); a2.stop(); } </script>

答案 1 :(得分:0)

您可以使用局部变量,稍后您只需要一个标识符即可找到音频元素。您还需要将音频元素附加到DOM。

此外,你必须使用pause()而不是停止()。

$this->db->select('*');
$this->db->from('workers');
if($name)
{
   $this->db->or_like('name', $name);
}
if($surname)
{
    $this->db->or_like('surname', $surname);
}
$query = $this->db->get();