html 获取语音时长,javascript – HTML5音频 – 获取声音对象的时间(howler.js)

我正在使用Howler.js库播放一些

HTML5音频.

目前我能用sound.duration()确定音频文件的总长度;但我不知道如何创建一个计时器来显示已播放的时间.

我创建一个简单的声音对象,如下所示:

var sound = new Howl({

src: ['sound.ogg', 'sound.mp3', 'sound.wav'],

autoplay: true,

loop: false,

volume: 1,

onload: function() {

var totalSoundDuration = sound.duration();

},

onplay: function(getSoundId) {

//sound playing

},

onend: function() {

//sound play finished

}

});

我似乎无法找到库中的任何方法(?)来检查currentTime,以便我可以更新我的计时器功能.

替代路线可以简单地在onplay上触发/切换setInterval:like:

var currentTimeTracker=setInterval(function () {myTimer()}, 1000);

function myTimer() {

timePlayed++;

$("#time" ).html(timePlayed);

}

不确定这是否是一个好方法?有什么建议?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现两个音频文件同步播放,可以使用Howler.js时间同步功能。以下是一个基本的示例代码: ```js // 创建两个音频实例 var sound1 = new Howl({ src: ['audio1.mp3'] }); var sound2 = new Howl({ src: ['audio2.mp3'] }); // 监听第一个音频实例的"play"事件 sound1.on('play', function() { // 获取第一个音频实例的当前播放时间 var startTime = sound1.seek() || 0; // 同步第二个音频实例的播放时间 sound2.seek(startTime); }); // 同时播放两个音频文件 sound1.play(); sound2.play(); ``` 在上面的代码中,我们首先创建了两个音频实例`sound1`和`sound2`,并为它们分别指定了音频文件的路径。然后,我们监听了`sound1`的`play`事件,获取了当前播放时间,并将其同步到`sound2`中,从而实现了两个音频文件的同步播放。 如果你想在同步播放时添加其他效果,比如交叉淡入淡出效果,你可以在`play`事件中使用Howler.js的`fade`方法来实现,例如: ```js // 监听第一个音频实例的"play"事件 sound1.on('play', function() { // 获取第一个音频实例的当前播放时间 var startTime = sound1.seek() || 0; // 同步第二个音频实例的播放时间,并添加交叉淡入淡出效果 sound2.seek(startTime); sound2.fade(0, 1, 1000); // 从0淡入到1,持续时间为1秒 }); // 同时播放两个音频文件,并添加交叉淡入淡出效果 sound1.play(); sound1.fade(1, 0, 1000); // 从1淡出到0,持续时间为1秒 sound2.play(); ``` 上面的代码中,我们在`play`事件中使用了`fade`方法来实现了交叉淡入淡出效果,使得两个音频文件在切换时更加平滑。同时,我们在两个音频实例的`play`方法中也添加了交叉淡入淡出效果,使得播放开始时也更加平滑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值