首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >播放时有一种奇怪行为的声音

播放时有一种奇怪行为的声音
EN

Stack Overflow用户
提问于 2021-06-06 14:02:47
回答 1查看 46关注 0票数 0

我有一个问题,播放音频时,我按下或单击一个按钮。

滚筒机

似乎我的音频有一个延迟,但我放了一个audio.currentTime = 0,所以我不知道是怎么回事。

这是我的JS:

代码语言:javascript
运行
复制
const $ = document.querySelectorAll.bind(document);

const sounds = [
    {id:'Bass Drum', letter:'Q', src:'https://dight310.byu.edu/media/audio/FreeLoops.com/3/3/Free%20Kick%20Sample%2011-909-Free-Loops.com.mp3'}
];
let volumeVal = 0.5;

$('input[type=range]')[0].addEventListener('input', function(e) {
    volumeVal = e.target.value / 100;
});

function main(url, name) {
    const audio = new Audio(url);
    audio.currentTime = 0;
    audio.preload = "auto";
    audio.volume = parseFloat(volumeVal);
    audio.play();
    $('.name')[0].textContent = name;
}

window.onkeydown = function(e) {
    function seter(id) {
        setTimeout(() => {
            $(`.${id}-but`)[0].classList.add('pressed');
            setTimeout(() => {
                $(`.${id}-but`)[0].classList.remove('pressed');
            }, 140);
        }, 0);
    }
    switch(e.key) {
        case 'q':
            main(sounds[0].src, sounds[0].id);
            seter('q');
        break;
    }
}

$('.q-but')[0].addEventListener('click', () => {
    main(sounds[0].src, sounds[0].id);
});

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-11 21:27:06

首先,非常感谢@Seblor为我提供了解决方案。

我通过为每个声音创建音频节点来解决我的问题:

代码语言:javascript
运行
复制
<audio id="bass" preload="auto" src="https://dight310.byu.edu/media/audio/FreeLoops.com/3/3/Free%20Kick%20Sample%2011-909-Free-Loops.com.mp3"></audio>

在我的JS文件中,我为每个按钮添加了这个事件侦听器:

代码语言:javascript
运行
复制
$('.q-but')[0].addEventListener('click', () => {
    const audio = $("#bass")[0];
    audio.currentTime = 0;
    audio.play();
});

当然,现在我可以减少代码的重复,因为我对所有的9个按钮都这样做。最终我会的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67859952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档