Flutter音频播放器:我怎样才能一个一个地播放音频列表(当前面的结束)

nvbavucw  于 2023-05-19  发布在  Flutter
关注(0)|答案(1)|浏览(158)

如何使用音频播放器逐个播放(短)音频列表?
我现在有以下代码:

AudioPlayer? _player;
  void _play(number) async {
    _player?.dispose();
    final player = _player = AudioPlayer();
    print("trying to play number $number");
    player.play(AssetSource('audio/$number.wav'));
  }
...
  void _playList(list) async{
    for (int i=0;i<list.length;i++){
      _play(i);
    }
  }

但是因为我在这里创建了多个AudioPlayer对象,所以音频可以同时播放。
我想达到的是:播放第一个音频,等待它到达结尾,然后播放下一个音频。循环播放,直到播放了列表中的所有音频。

avwztpqn

avwztpqn1#

好的,我在这里回答我自己的问题。

AudioPlayer player= AudioPlayer();
  void _playList(list) async{
    player.play(AssetSource('audio/${list[0]}.wav'));
    int i =1;
    player.onPlayerComplete.listen((_) {
      if (i<list.length) {
        player.play(AssetSource('audio/${list[i]}.wav'));
        i++;
      }
    });
  }

相关问题