Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停止动态创建的音频_Javascript_Audio_Dynamic_Element - Fatal编程技术网

Javascript 停止动态创建的音频

Javascript 停止动态创建的音频,javascript,audio,dynamic,element,Javascript,Audio,Dynamic,Element,我动态创建点击事件(播放)音频元素,如下所示 var myAudio = document.createElement('audio'); myAudio.setAttribute('src', mp3link); 比我让它发挥 myAudio.play() 现在问题来了,当我点击另一个元素,下一首曲目开始播放时,我想在所有正在播放的音频之前停止播放。我该怎么做?不要直接打电话给play。使对象具有属性currentAudio。给它一个以音频对象为参数的函数播放。当您点击play并向其传递一

我动态创建点击事件(播放)音频元素,如下所示

var myAudio = document.createElement('audio');
myAudio.setAttribute('src', mp3link);
比我让它发挥

myAudio.play()

现在问题来了,当我点击另一个元素,下一首曲目开始播放时,我想在所有正在播放的音频之前停止播放。我该怎么做?

不要直接打电话给play。使对象具有属性currentAudio。给它一个以音频对象为参数的函数播放。当您点击play并向其传递一个新的音频元素时,您可以在播放新的音频元素之前停止旧的音频元素,并保存引用。

在html中仅创建一个

var myAudio = document.getElementById('audio');
myAudio.setAttribute('src', mp3link);
myAudio.play()
每次单击“新建曲目”时,它都会替换mp3源链接

  • 使用节点列表中的
    querySelectorAll('audio')
    收集所有音频元素
  • 使用
    for
    循环遍历节点列表
  • 在每次迭代(循环)中,
    .pause()
    然后重置
    currentTime=0
    。没有
    stop()
    方法,因此必须暂停,然后将时间重置为0。
    • 在代码段中,启动两个播放器,然后单击播放按钮
    • 单击stopAll按钮
    • 再次单击播放按钮
  • 基本上,停止所有玩家,然后按你想要的玩。这就是通常的做法。当然,您将使用动态播放器而不是硬编码类型,但是
    stopAll()
    函数也将用于动态创建的音频

    一小条
    var xAudio=document.createElement('audio');
    var mp3Link=http://glpjt.s3.amazonaws.com/so/av/pf-righteous.mp3'
    setAttribute('src',mp3Link);
    document.body.appendChild(xAudio);
    函数播放(){
    xAudio.play();
    }
    函数stopAll(){
    var xGroup=document.querySelectorAll('audio');
    对于(变量i=0;i
    
    
    停球 玩
    使用
    myAudio.pause()没问题,编码愉快,先生。