我正在尝试在Flutter中创建一个闹钟,一定时间后会发出闹钟声。在Flutter中似乎这比说起来容易得多!
我尝试使用audioplayer插件来实现这一点。使用playLocal函数,其中资产从rootbundle加载到应用程序目录,然后播放。
根据audioplayer github回复中的一个答案,这是应该做到这一点的代码:
我尝试使用audioplayer插件来实现这一点。使用playLocal函数,其中资产从rootbundle加载到应用程序目录,然后播放。
根据audioplayer github回复中的一个答案,这是应该做到这一点的代码:
class SoundManager {
AudioPlayer audioPlayer = new AudioPlayer();
Future playLocal(localFileName) async {
final dir = await getApplicationDocumentsDirectory();
final file = new File("${dir.path}/$localFileName");
if (!(await file.exists())) {
final soundData = await rootBundle.load("assets/$localFileName");
final bytes = soundData.buffer.asUint8List();
await file.writeAsBytes(bytes, flush: true);
}
await audioPlayer.play(file.path, isLocal: true);
}
}
我一直收到一个错误:"无法加载资源"。该资源(mp3/wav文件)显然在文件夹中,并且该文件夹已正确包含在pubspec.yaml文件中(来自此文件夹的其他图像资源正在正确加载,因此指定文件夹本身不是问题所在)。