我使用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)