flutter - AudioCache 播放器不会延迟播放
问题描述
我正在尝试在应用程序启动时使用 AudioCache 播放音频资产序列。我想以第 8 拍(延迟 188 毫秒)播放音频。音频资产本身可以正常工作,AudioCache 播放器也是如此,但是当我尝试播放音符时,它们都播放得非常快。我使用了以下方法,但没有一个对我有用:
//188ms because beat is eigth note
player.play('note1.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note1.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note5.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note4.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note4.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note3.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note4.wav');
Future.delayed(Duration(milliseconds: 188 ));
player.play('note5.wav');
还有这个:
Timer(Duration(milliseconds: 188 ), () => player.play('note1'));
Timer(Duration(milliseconds: 188 ), () => player.play('note1'));
Timer(Duration(milliseconds: 188 ), () => player.play('note5'));
Timer(Duration(milliseconds: 188 ), () => player.play('note4'));
Timer(Duration(milliseconds: 188 ), () => player.play('note4'));
Timer(Duration(milliseconds: 188 ), () => player.play('note3'));
Timer(Duration(milliseconds: 188 ), () => player.play('note4'));
Timer(Duration(milliseconds: 188 ), () => player.play('note5'));
我把它写在一个在 build(context) 内部调用的函数中。我需要在这里使用另一个延迟功能吗?
解决方案
尝试将它们链接在一起,如下所示:
Future.delayed(const Duration(milliseconds: 188), () {
player.play('note1.wav');
Future.delayed(const Duration(milliseconds: 188), () {
player.play('note5.wav');
Future.delayed(const Duration(milliseconds: 188), () {
player.play('note4.wav');
}); // etc...
});
});
推荐阅读
- dns - 谷歌云 DNS;基础域名重定向
- python - Jupyter Notebook - 在函数内绘图 - 未绘制图形
- woocommerce - 获取 Post meta 以显示在 WordPress 的发票上
- r - R 水彩情节
- bash - Syslog - 如何显示彩色消息?
- c - C在减法期间检查溢出
- r - R语言:处理数据框中数据的函数
- c# - 发送 SMTP 电子邮件在控制台应用程序中被强制关闭,然后才能在 .NET 中发送电子邮件
- c# - 删除 using 语句后仍然存在模棱两可的空名称
- javascript - 恢复 Firefox 选项卡后防止切换 type="radio" 元素