gpt4 book ai didi

javascript - 在 JavaScript 中连续播放两个文件

转载 作者:搜寻专家 更新时间:2023-11-01 05:05:51 39 4
gpt4 key购买 nike

我做错了。所以,我正在制作一个简单的脚本来告诉当前时间。audiocontainer 是一个音频元素,前面定义了mp3play() 函数。我们的想法是这样做:

[play hourXX.mp3] -> 结束时 -> [play minutesXX.mp3] -> 删除监听器,因此停止。

  • 问题是:

没有 removeEventListener() 函数,minuteXX.mp3 无限循环(“这是 12 和 54 分钟……54 分钟……54 分钟……)因为它不断触发监听器最后。

使用 removeEventListener() 函数,音频根本不会启动。你知道为什么吗?

或者有没有更简单的方法连续播放 2 个 mp3?

function telltime() {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();

audiocontainer.addEventListener('ended', function () {
mp3play('./time/minutes/minute'+m.toString()+'.mp3');

audiocontainer.removeEventListener('ended', function(), false); // stop!

}, true);

mp3play('./time/hours/hour'+h.toString()+'.mp3');

}

最佳答案

由于您的问题有点“本地化”(由于语法错误而无法正常工作),我对您的问题进行了抽象处理,以便提供对其他人也有用的答案。

如何连续播放多个mp3文件

将其包含在您的上下文中:

var Mp3Queue = function(container, files) {
var index = 1;
if(!container || !container.tagName || container.tagName !== 'AUDIO')throw 'Invalid container';
if(!files || !files.length)throw 'Invalid files array';

var playNext = function() {
if(index < files.length) {
container.src = files[index];
index += 1;
} else {
container.removeEventListener('ended', playNext, false);
}
};

container.addEventListener('ended', playNext);

container.src = files[0];
};

像这样使用它:

//whatever is your audio element
var container = document.getElementById('container');

//play files in a row
new Mp3Queue(container, [
'http://incompetech.com/music/royalty-free/mp3-royaltyfree/Sweeter%20Vermouth.mp3',
'http://incompetech.com/music/royalty-free/mp3-royaltyfree/Happy%20Boy%20Theme.mp3'
]);

这是工作示例:http://jsfiddle.net/fYjLx/

在您的具体情况下:

function telltime() {
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();

new Mp3Queue(container, [
'./time/hours/hour'+h.toString()+'.mp3',
'./time/minutes/minute'+m.toString()+'.mp3'
]);
}

关于javascript - 在 JavaScript 中连续播放两个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16916896/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com