You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发:audioplayers的onAudioPositionChanged废弃,如何监听音频位置?

替代废弃的onAudioPositionChanged监听音频位置的方案

在audioplayers包的新版本中,onAudioPositionChanged已被废弃,2023年起推荐使用onPositionChanged这个Stream来监听音频播放位置,用法和旧API基本一致,仅名称变更。

代码示例

// 监听音频播放位置
audioPlayer.onPositionChanged.listen((newPosition) {
  setState(() {
    position = newPosition;
  });
});

备选方案:主动定时查询

如果需要更灵活的控制逻辑,也可以通过定期主动调用getCurrentPosition()方法获取位置,搭配Timer.periodic实现:

Timer.periodic(const Duration(milliseconds: 100), (timer) async {
  if (audioPlayer.state == PlayerState.playing) {
    final currentPos = await audioPlayer.getCurrentPosition();
    setState(() {
      position = currentPos ?? Duration.zero;
    });
  } else {
    timer.cancel(); // 暂停或结束时取消定时器
  }
});

注意:确保你的audioplayers依赖是较新版本(如0.20.x及以上),不同版本的API细节可能略有差异,建议保持依赖更新。

内容的提问来源于stack exchange,提问作者user22030129

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:47:10