gpt4 book ai didi

javascript - 使用 Howler.js 时有没有办法指示音频下载进度/缓冲区?

转载 作者:搜寻专家 更新时间:2023-11-01 04:30:02 25 4
gpt4 key购买 nike

我正在使用 Howler.js并尝试完成这样的事情:

download with buffer

但是,Howler 似乎不支持 audio "progress" events .有人知道我该如何解决这个问题吗?

最佳答案

您需要绑定(bind)到 Howler 的非公共(public) API 才能实现此目的,至少在实现此功能之前(如果有的话)。

const audio = new Howl({
src: 'https://howlerjs.com/assets/howler.js/examples/player/audio/rave_digger.webm',
html5: true,
preload: false,
});

const handleLoad = () => {
const node = audio._sounds[0]._node;
// const node:HTMLAudioElement = (audio as any)._sounds[0]._node; // For Typescript
node.addEventListener('progress', () => {
const duration = audio.duration();

// https://developer.mozilla.org/en-US/Apps/Fundamentals/Audio_and_video_delivery/buffering_seeking_time_ranges#Creating_our_own_Buffering_Feedback
if (duration > 0) {
for (let i = 0; i < node.buffered.length; i++) {
if (node.buffered.start(node.buffered.length - 1 - i) < node.currentTime) {
const bufferProgress = (node.buffered.end(node.buffered.length - 1 - i) / duration) * 100;
// do what you will with it. I.E - store.set({ bufferProgress });
break;
}
}
}
}
};

audio.on('load', handleLoad);

原始答案可见heregoldfire/howler.js

关于javascript - 使用 Howler.js 时有没有办法指示音频下载进度/缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37769535/

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