颤音播放器延迟

时间:2020-01-06 10:32:46

标签: flutter delay audio-player

我正在使用Flutter Framework编写一个小游戏。 我正在使用音频播放器来播放声音。

例如每秒两次调用它时,它可以像这样正常工作。 但是,当我叫它超过5次且在下一秒内再次调用时,声音有点延迟,然后在一秒钟左右后所有声音立即播放:)听起来很奇怪。

我还在iphone上测试了来自github的audioplayers示例。以低频重复声音是可以的,但是当我在某个点尽可能快地重复单击按钮时,它会延迟一些时间,并且发生了相同的事情。

是否有某种方法可以先停止上一个声音,然后播放下一个声音,或者这可能吗?

或者还有其他一些想法如何处理声音?

这是我的用法:

    AudioCache upgradeSound = new AudioCache();

    void playUpgradeSound() {
       _playUpgradeSound(upgradeSound);
    }

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

非常感谢您

2 个答案:

答案 0 :(得分:1)

我通过开设单身人士班解决了类似的问题,在第一次比赛后我可以获得状态,并且可以停止以前的比赛。

  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');
                            }
                          },
...

答案 1 :(得分:0)

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

要使用低延迟API(更适合游戏声音),请使用:

AudioPlayer audioPlayer = AudioPlayer(mode: PlayerMode.LOW_LATENCY);

在此模式下,后端不会触发任何持续时间或职位更新。而且,不可能使用搜索方法将音频设置为特定位置。网络上也无法使用此模式。

我希望它有用。