飞镖 - 玩一个期货循环

时间:2017-06-03 15:41:00

标签: dart flutter

我有这个功能,可以使用audioplayer plugin在Flutter内部播放声音。

play(int soundFrequency) async {
  final result = await audioPlayer.play("urltosound.wav");
}

工作正常。但现在我希望能够连续播放多个声音。好像我搞砸了未来。我尝试过这种方法,这种方法非常脏而且丑陋,但我只是想弄明白:

playRandomSequence() async {
  final result = audioPlayer.play("urltosound.wav").then(play2(pickRandomSoundFrequency()));
}
play2(int soundFrequency) async {
  final result = audioPlayer.play("urltosound.wav");
}

基本上,只要第一个未来结束,我就会用.then()方法调用下一个。

我从中得到的是这个错误:

type '_Future' is not a subtype of type '(dynamic) => dynamic' of 'f' where _Future is from dart:async

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:5)

.then()的参数类型错误。尝试:

.then((_) => play2(pickRandomSoundFrequency()))

您需要传递一个要调用的函数,而不是在构造then的参数时调用该函数。