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