0

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

どうすればこれを修正できますか?

ありがとう

4

1 に答える 1

5

の引数の型が間違っています.then()。試す:

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

への引数を構築するときに関数を呼び出すのではなく、呼び出される関数を渡す必要がありますthen

于 2017-06-03T17:23:48.807 に答える