Flutter 颤振音频播放器延迟

Flutter 颤振音频播放器延迟,flutter,delay,audio-player,Flutter,Delay,Audio Player,我正在用颤振框架编写一个小游戏。 我用音频播放器播放声音 例如,当每秒调用它2次时,它可以像这样正常工作。 但是,当我在下一秒的某个时刻多次调用它时,声音会有一个延迟,然后在大约一秒钟后,所有的声音同时播放:)听起来很奇怪 我还在iphone上测试了github的AudioPlayer示例。以低频重复这些声音是可以的,但当我在某个点上以尽可能快的速度重复单击按钮时,会出现一些延迟,同样的事情也会发生 有没有办法在播放前停止前一个声音,然后再播放下一个声音,或者这是不可能的 或者有没有其他办法来处

我正在用颤振框架编写一个小游戏。 我用音频播放器播放声音

例如,当每秒调用它2次时,它可以像这样正常工作。 但是,当我在下一秒的某个时刻多次调用它时,声音会有一个延迟,然后在大约一秒钟后,所有的声音同时播放:)听起来很奇怪

我还在iphone上测试了github的AudioPlayer示例。以低频重复这些声音是可以的,但当我在某个点上以尽可能快的速度重复单击按钮时,会出现一些延迟,同样的事情也会发生

有没有办法在播放前停止前一个声音,然后再播放下一个声音,或者这是不可能的

或者有没有其他办法来处理这些声音

我就是这样使用它的:

    AudioCache upgradeSound = new AudioCache();

    void playUpgradeSound() {
       _playUpgradeSound(upgradeSound);
    }

     void _playUpgradeSound(AudioCache ac) async{
        await ac.play('audio/upgr.mp3');
     }

非常感谢您

在它自己的文档中有一行代码

要使用低延迟API,更好地播放游戏声音,请使用:

AudioPlayer AudioPlayer=AudioPlayer(模式:PlayerMode.低延迟)

在此模式下,后端不会触发任何持续时间或位置更新。此外,无法使用seek方法将音频设置为特定位置。此模式在web上也不可用


我希望它有用。

我通过使用singleton类解决了类似的问题,在第一次播放之后,我可以获得状态,并且可以停止之前的播放

  class Audio {
  static final playerCache = AudioCache();
  static AudioPlayer audioPlayer;

  static void play(String audioName) async {
    audioPlayer = await playerCache.play('$audioName.mp3');
  }

  static void stop() {
    audioPlayer.stop();
  }
}

...
                        child: IconButton(
                          onPressed: () {
                            try {
                              if (Audio.audioPlayer.state ==
                                  AudioPlayerState.PLAYING) {
                                Audio.stop();
                              } else {
                                Audio.play('bid');
                              }
                            } catch (e) {
                              Audio.play('bid');
                            }
                          },
...

你有什么解决办法吗?我也有同样的情况。