javascript - 如何使用 JavaScript 为音频播放器实现快进功能
问题描述
我正在尝试在我的应用程序中实现快进。我在快进按钮上添加了一个事件监听器,它将音频剪辑的当前时间增加了 10 秒。问题是,它仅适用于第一次单击快进按钮。
我正在使用timeupdate
事件在屏幕上显示音频的当前时间,但每次单击按钮时我都需要将时间增加十秒。我错过了什么?这是音轨上的事件监听器,用于显示转发时间
function forwardTenSecs (audio_track){
audio_track.addEventListener('timeupdate', () => {
const currentTime = Math.floor(audio_track.currentTime);
const duration = Math.floor(audio_track.duration);
track_time.innerText = `${plusTenSecs(currentTime)} / ${format_time(duration)}`;
}, false);
}
这是我用来格式化音频当前时间并添加十秒的函数。
function plusTenSecs(time){
let sec = Math.floor(time) + parseInt(10);
let min = Math.floor( sec / 60 );
if (min < 10) {
min = '0' + min;
}
sec = Math.floor( sec % 60 );
if (sec < 10) {
sec = '0' + sec;
}
return min + ":"+ sec;
}
这个想法是每次我单击前进按钮时,该plusTenSecs
功能都应该运行,这反过来应该使forwardTenSecs
功能运行。
我错过了什么?
解决方案
// Add eventListener to the fast-forward button
const btn = document.getElementById("btn").addEventListener('click', fastForward)
// add current time to 10 seconds in every click
function fastForward() {
audio_track.currentTime += 10;
}
您可以在此处尝试演示:https ://jsfiddle.net/mu8cz7f4/ 演示音频只有 1-2 秒,所以我设置每次点击只需添加 0.1 秒
推荐阅读
- phpfox - PHPFOX:哪个函数最终在 https://github.com/Criotin/phpfox/blob/master/PF.Src/Core/Hash.php 中生成密码
- java - 使用 Java 读取存储在 WildFly 的 Elytron 凭证存储中的密码?
- wpf - MahApps MetroWindow Topmost 属性绑定问题
- batch-file - 计算批处理文件中的上一个日期是无聊的
- javascript - 如何在弹出窗口而不是内部 html 中显示消息
- java - 为什么我们需要动态绑定(Java)?
- python - 在熊猫中将列中的所有值从最大值反转为最小值,反之亦然
- python - 如何在python中同时为不同的值运行一个函数?
- uber-api - 无法确定集成所需的范围
- vulkan - 创建逻辑设备时出现访问冲突