我使用HTMLMediaElement为我的网站构建了一个简单的音频播放器(由于个人原因,我避免使用<audio>元素)

一切似乎都正常,但是当我想使用replaceAudio()替换源代码时,出现此错误:



这是我的代码:

// ********************************************************************** //
// ****************************** Audio.js ****************************** //
// ********************************************************************** //

// Declare element and event listeners
audio = new Audio()

function replaceAudio() {
    audio.pause()
    audio.currentTime = 1;
    audio = new Audio('/static/users/' + trackUser + '/tracks/' + trackSlug + '.mp3');
    audio.load()
}
function addAudioEventListeners() {
    audio.addEventListener('timeupdate', updateProperties, false)
    audio.addEventListener('ended', audioEnded, false)
}
// *** Declare minor functions

// Sets the progress or buffer width
...

// Converts the time integers to formatted time
...

// Get properties and update them

function updateProperties() {

    ...

    function getAudioProps() {
        ...
        buffered = audio.buffered


        // Return the values
        return {time:time,dur:dur}
    }

    var getAudioProps = getAudioProps();
    ...
    var bufferend = buffered.end(0) / dur

    ...
    setAudioIndicatorWidth(bufferend, bufferElement);

}

function audioEnded() {}

最佳答案

在开始调用buffered.end(0)之前,请先检查buffered.length

如果(buffered.length> 0)
//调用buffered.end(0)/ buffered.start(0)

10-08 14:41