如何修复Firefox 60.6.1esr中错误的音频持续时间错误?

时间:2019-04-15 10:06:17

标签: html5-audio

我正在尝试在“ created()”钩子上创建一个音频对象:

this.sound = new Audio(this.soundURL_prop);

,其中 this.soundURL_prop-这是Vue.js组件的属性,如下所示: “数据:音频/音频; base64,UklGRrrlLwBXQVZFZm10IBAAAAABAA…”

比我想计算音频持续时间:

this.sound.onloadedmetadata = () => {
console.log(this.sound.duration);
}

在Chrome v。73.0.3683.103中,它可以正常工作并显示正确的持续时间,但在Firefox中则不能。

当我在同一代码执行期间第二次创建新的Audio(this.soundURL_prop)时,Firefox也显示正确的持续时间。

我认为这可能取决于readyState,但它也没有帮助。

this.sound.onloadedmetadata = () => {
if (this.sound.readyState === 4) {
console.log(this.sound.duration);}
}

此版本可在所有浏览器中使用:

this.sound = new Audio(URL.createObjectURL(this.b64toBlob(this.soundURL_prop.replace(/^data:(audio)\/(wav);base64,/, ""))));

但是我不明白为什么第一个版本每次都无法正确运行。

0 个答案:

没有答案