想知道 Howler JS 是否有每秒通知的方式?这将用于更新跟踪歌曲播放时间的状态变量。一种方法是这样的:
var sound = new Howl({
xhr: {
method: 'POST',
headers: {
Authorization: 'Access-Control-Allow-Origin:*',
},
withCredentials: true,
},
// autoplay: true,
loop: true,
volume: 1,
format: ['mp3'],
src: [mp3],
});
sound.play();
let position: number = 0;
const s = interval(1000).subscribe((v) => {
console.log(v);
if (!sound.playing()) {
s.unsubscribe();
}
position = sound.seek();
console.log(position);
只是好奇嚎叫者是否有类似的东西:
const interval = 1000;
song.on(interval, callback)
那么这会调用回调直到歌曲播放完毕?
如文档中所述,
Howler
实例有一个方法.on
来监听事件。遗憾的是,没有进展事件或类似事件。
但是,有一个选项
html5
可以设置为 true
以强制使用 HTML5 进行播放。
调用
Howler#play
将返回 Sound
的 ID。对于你的情况:
const soundId = sound.play(); // your variable sound is an Howler instance
您可以通过调用
Sound
来获取 Howler#_soundById
对象。
const soundObj = sound._soundById(soundId);
您可以使用
Sound#_node
属性(这将是一个 HTMLAudioElement
)获取 HTML5 音频元素。
常量音频= soundObj._node;
然后您可以使用
HTMLAudioElement
提供的任何内容,包括监听 progress
事件。
fromEvent(audio, "progress")
.pipe(throttleTime(1000))
.subscribe(event => {
// do stuff with `audio` and `event` here
});