【问题标题】:jQuery audio stop/pause on changejQuery 音频在更改时停止/暂停
【发布时间】:2017-11-03 20:22:46
【问题描述】:

如何在更改时停止/暂停 jQuery 音频?

$("#alarm").bind("change", function(event)
{
    var audio = $(this).find(':selected').attr('data-audio');

    var obj = document.createElement("audio");
    obj.src="assets/audio/"+audio;
    obj.volume=0.1;
    obj.autoPlay=false;
    obj.preLoad=true;
    obj.play();
});

我尝试在obj.play(); 之前添加obj.pause();,但它仍然运行音乐。因此,如果我更改为另一个组合框,音频将播放多个。

我想要的是在更改时停止/暂停音频。

HTML

<select name="alarm" id="alarm">
    <?php
    $qAlarm = mysqli_query($con, "SELECT * FROM tb_alarm WHERE active = 'Y'");
    while($dAlarm = mysqli_fetch_array($qAlarm))
    {
        if($dAlarm['alarm_id'] == $getAlarmID)
        {
        ?>
            <option value="<?php echo $dAlarm['alarm_id']; ?>" selected data-audio=<?php echo $dAlarm['alarm_file']; ?>><?php echo $dAlarm['alarm_name']; ?></option>
        <?php
        }
        else
        {
        ?>
            <option value="<?php echo $dAlarm['alarm_id']; ?>" data-audio=<?php echo $dAlarm['alarm_file']; ?>><?php echo $dAlarm['alarm_name']; ?></option>
        <?php
        }
    }
    ?>
</select>

【问题讨论】:

  • 请附上您的html代码
  • 代替 obj.pause();做 obj.src = '';这不是一个理想的方法,但它是一个快速修复。
  • @CarstenLøvboAndersen 添加了 html 代码

标签: jquery audio


【解决方案1】:

暂停音乐并在下一行开始它真的没有意义,是吗?如果要在更改时暂停音乐,请不要将启动音乐的代码放在 onChange 函数中。 尝试在其他地方开始播放音乐,也许当文档完成加载并在更改功能中运行暂停:

var audio = $('#audioelement');
obj.pause();

在创建音频对象时一定要给它一个 id:

obj.id = "audioelement";

【讨论】:

  • 好的,我编辑了帖子,再试一次。您现在从哪里开始播放音频?
猜你喜欢
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多