javascript - html 音频标签,持续时间总是无穷大

标签 javascript html html5-audio

我一直致力于使用 html 音频标签来播放一些音频文件。音频播放正常,但音频标签的持续时间属性总是返回无穷大。

我尝试了对 this 的可接受答案问题,但结果相同。已使用 Chrome、IE 和 Firefox 进行测试。

这是音频标签的错误,还是我遗漏了什么?

我用来播放音频文件的一些代码。

按下播放按钮时的javascript函数

function playPlayerV2(src) {
document.getElementById("audioplayerV2").addEventListener("loadedmetadata", function      (_event) {
console.log(player.duration);
});
var player = document.getElementById("audioplayer");

    player.src = "source";
    player.load();
    player.play();
}

html中的audio标签

<audio controls="true" id="audioplayerV2" style="display: none;" preload="auto">

注意:我隐藏了标准音频播放器,目的是使用自定义布局并通过 javascript 使用播放器,这似乎与我的问题无关。

最佳答案

试试这个

var getDuration = function (url, next) {
    var _player = new Audio(url);
    _player.addEventListener("durationchange", function (e) {
        if (this.duration!=Infinity) {
           var duration = this.duration
           _player.remove();
           next(duration);
        };
    }, false);      
    _player.load();
    _player.currentTime = 24*60*60; //fake big time
    _player.volume = 0;
    _player.play();
    //waiting...
};

getDuration ('/path/to/audio/file', function (duration) {
    console.log(duration);
});

关于javascript - html 音频标签,持续时间总是无穷大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21522036/

相关文章:

javascript - 有没有办法减少与其调用者通信的无限生成器中的产量数量?

javascript - Sails.js 条件模型加载

html - 为什么不允许使用此 Doctype "DIV"?

javascript - 我可以获得 audio.currentTime 但无法设置它(在 Google Chrome 中)

iphone - 在 iPhone 上不停止 iTunes 音频的情况下播放 HTML5 音频

javascript - d3.js水平条形图问题

javascript - Angular 6 类型错误 : guard is not a function

html - 悬停时平滑切换动画

html - Gmail 如何防止使用绝对定位的元素重叠?

javascript - 使用 Canvas 调整叠加图像的大小问题