gpt4 book ai didi

javascript - audio.buffered.end(0) 替换音频源时抛出错误

转载 作者:行者123 更新时间:2023-11-28 06:23:44 26 4
gpt4 key购买 nike

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

一切似乎都工作正常,但是当我想使用 replaceAudio() 替换源时,我收到此错误:

Uncaught IndexSizeError: Failed to execute 'end' on 'TimeRanges': The index provided (0) is greater than or equal to the maximum bound (0).

这是我的代码:

// ********************************************************************** //
// ****************************** 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

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

关于javascript - audio.buffered.end(0) 替换音频源时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35305349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com