Flutter 纯音频播放事件
Flutter Just Audio playbackEvent
我在我的 Flutter 应用程序中使用了一个名为 Just Audio 的包。它提供了一个 playBackEvent: playbackEvent.currentPosition 来显示 Audio 文件中已经播放的时间位置。然而,我对 Dart 有点陌生,并不真正了解如何为这个事件订阅一个监听器,以便我可以对不断变化的值做一些事情。
我想要做的是 运行 一个函数,它在值更改时设置状态,这样我就可以显示进度并让用户知道他们当时在音频文件中的进度。
有人可以向我解释一下我应该怎么做吗?
如有任何帮助,我们将不胜感激。
完整示例可用 here。
StreamBuilder<Duration>(
stream: _player.durationStream,
builder: (context, snapshot) {
final duration = snapshot.data ?? Duration.zero;
return StreamBuilder<Duration>(
stream: _player.getPositionStream(),
builder: (context, snapshot) {
var position = snapshot.data ?? Duration.zero;
if (position > duration) {
position = duration;
}
return SeekBar(
duration: duration,
position: position,
onChangeEnd: (newPosition) {
_player.seek(newPosition);
},
);
},
);
},
),
我在我的 Flutter 应用程序中使用了一个名为 Just Audio 的包。它提供了一个 playBackEvent: playbackEvent.currentPosition 来显示 Audio 文件中已经播放的时间位置。然而,我对 Dart 有点陌生,并不真正了解如何为这个事件订阅一个监听器,以便我可以对不断变化的值做一些事情。
我想要做的是 运行 一个函数,它在值更改时设置状态,这样我就可以显示进度并让用户知道他们当时在音频文件中的进度。
有人可以向我解释一下我应该怎么做吗?
如有任何帮助,我们将不胜感激。
完整示例可用 here。
StreamBuilder<Duration>(
stream: _player.durationStream,
builder: (context, snapshot) {
final duration = snapshot.data ?? Duration.zero;
return StreamBuilder<Duration>(
stream: _player.getPositionStream(),
builder: (context, snapshot) {
var position = snapshot.data ?? Duration.zero;
if (position > duration) {
position = duration;
}
return SeekBar(
duration: duration,
position: position,
onChangeEnd: (newPosition) {
_player.seek(newPosition);
},
);
},
);
},
),