Flutter 仅音频播放事件

Flutter 仅音频播放事件,flutter,flutter-dependencies,Flutter,Flutter Dependencies,我正在使用一个名为“我的颤振应用程序”的软件包。它提供一个playBackEvent:playBackEvent.currentPosition,显示音频文件中播放的时间位置。不过,我对Dart有点陌生,不太明白如何订阅此事件的侦听器,以便可以对更改的值进行处理 我想做的是运行一个函数,当值改变时设置状态,这样我就可以显示进度,并让用户知道他们当时在音频文件中的位置 有人能给我解释一下我该怎么做吗 任何帮助都将不胜感激。提供完整的样本 StreamBuilder( 流:_player.durat

我正在使用一个名为“我的颤振应用程序”的软件包。它提供一个playBackEvent:playBackEvent.currentPosition,显示音频文件中播放的时间位置。不过,我对Dart有点陌生,不太明白如何订阅此事件的侦听器,以便可以对更改的值进行处理

我想做的是运行一个函数,当值改变时设置状态,这样我就可以显示进度,并让用户知道他们当时在音频文件中的位置

有人能给我解释一下我该怎么做吗


任何帮助都将不胜感激。

提供完整的样本

StreamBuilder(
流:_player.durationStream,
生成器:(上下文,快照){
最终持续时间=snapshot.data??duration.zero;
返回流生成器(
流:_player.getPositionStream(),
生成器:(上下文,快照){
var位置=snapshot.data??Duration.zero;
如果(位置>持续时间){
位置=持续时间;
}
返回搜索杆(
持续时间:持续时间,
职位:职位,,
onChangeEnd:(newPosition){
_player.seek(新位置);
},
);
},
);
},
),

谢谢,这太好了,还学到了更多关于StreamBuilder的知识!您知道如何检查音频是否已结束,并执行其他操作吗?
 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);
                    },
                  );
                },
              );
            },
          ),