我正在使用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');
}
非常感谢您
答案 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);
在此模式下,后端不会触发任何持续时间或职位更新。而且,不可能使用搜索方法将音频设置为特定位置。网络上也无法使用此模式。
我希望它有用。