下面的代码显示了我如何在没有音频服务的情况下使用音频播放器
playFromFile(List textList, seek) async {
for (int i = seek; i < textList.length; i++) {
setState(() {
newSeek = i;
});
itemScrollController.scrollTo(
index: i,
duration: const Duration(seconds: 2),
curve: Curves.easeInOutCubic);
String text = textList[i].join(' ');
final bytes = await getAudio(text);
await audioPlugin.playBytes(bytes);
while (audioPlugin.state == PlayerState.PLAYING && !playFresh) {
await Future.delayed(const Duration(seconds: 1));
if (audioPlugin.state == PlayerState.PLAYING) {
audioPlugin.onPlayerCompletion.listen((onDone) async {
audioPlugin.state = PlayerState.COMPLETED;
await audioPlugin.release();
});
}
if (audioPlugin.state == PlayerState.COMPLETED) {
await audioPlugin.release();
break;
}
}
if (playFresh) break;
}
}
我想使用音频服务来实现这个代码,这样我就可以在后台播放音频了。如何用音频服务实现这一点,以便在后台播放。请帮帮我,因为我是个新手,好几天都无法解决这个问题。
解决方案将非常简单。您可以使用不同的层来实现这一点。
UI层-这将是您要单击播放按钮的UI。
中间层或音频服务层(音频服务类(-从您的UI层,您将调用此音频服务类播放方法。
最后一层(实际音频播放器方法(-这将是您实际音频包mehtods所在的最后一层。您从中间层调用了此层。
摘要-UI层播放按钮->音频服务播放方法->音频播放器播放方法