我正在尝试使用音频的 HTML DOM 持续时间属性设置音频标签的持续时间。
我尝试了以下方法,但似乎不起作用:
$('audio')[0].duration = 1;
我已经查看了其他答案,但我看不到任何使用 duration 属性的答案。
如果 duration 属性是只读的,我还能使用什么其他方法?
最佳答案
您不能更改持续时间,因为它被锁定到原始数据(不能通过音频元素更改)。
您可以通过监控时间限制播放并在达到阈值时暂停音频来实现不同持续时间的错觉:
- 使用
timeupdate
event并根据您的阈值检查currentTime
- 您也可以使用
requestAnimationFrame
轮询相同的值并进行相同的检查 - 或者,对于超精确计时,您需要使用 Web Audio API ,为音频创建一个音频缓冲区,然后使用首选时间开始/停止。这将需要满足 CORS 要求
在加载端,浏览器可能会加载整个文件。如果你想控制这部分你必须使用 Media Source Extension这允许您控制缓冲过程。
关于javascript - 如何设置音频的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30697618/