howler 有没有办法在给定的时间间隔内通知?

问题描述 投票:0回答:1

想知道 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)

那么这会调用回调直到歌曲播放完毕?

javascript typescript rxjs html5-audio howler.js
1个回答
1
投票

文档中所述,

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
  });
© www.soinside.com 2019 - 2024. All rights reserved.