我正在使用 Just-Audio 播放资产文件(现在,我最终会转而流式传输它们)但我需要在一段时间内淡入淡出音频。现在,有一种解决方法,我只是加载淡入淡出的文件,但音频的长度在 10 到 30 分钟之间,我想到的减小文件大小的一种方法是尝试使用无间隙循环,并且每个循环都会降低音量,但我似乎无法让它工作。
这是我正在尝试做的一个例子:
void fadeoutAudio() {
for (int i = 0; i < 10; i++) {
_audioPlayer.playerStateStream.listen((PlayerState state) {
switch (state.processingState) {
case ProcessingState.ready:
print(ProcessingState.ready);
_audioPlayer.play();
break;
case ProcessingState.completed:
print(ProcessingState.completed);
_volume = _volume - 0.1;
_audioPlayer.setVolume(_volume);
_audioPlayer.play();
break;
}
});
}
我在 initstate 中调用它。音频播放一次,在打印状态时,我可以看到我已完成,但它不再播放。
对此有解决方案的任何想法?