Flutter中使用audioplayer包播放录制音频的问题求助
解决audioplayer播放本地录制音频的参数类型错误
你遇到的错误是因为新版本audioplayer(v5及以上)的play方法参数不再接受字符串,而是要求传入Source类型的子类。针对本地录制的音频文件,需要用FileSource来包装文件路径。
修改播放方法的代码
把原来的play方法改成以下形式:
import 'dart:io'; import 'package:audioplayers/audioplayers.dart'; Future<void> play(String filePath) async { // 先检查文件是否存在,避免报错 final audioFile = File(filePath); if (await audioFile.exists()) { await _audioPlayer.play(FileSource(filePath)); } else { log("录制的音频文件不存在,请检查路径:$filePath"); } }
不同场景的Source对应方式
- 网络音频:使用
UrlSource("网络音频地址") - 项目资源文件:使用
AssetSource("assets/xxx.mp3") - 本地文件(比如你录制的音频):使用
FileSource("本地文件路径")
额外注意事项
确保recordFilePath是正确的本地文件绝对路径,你可以通过log输出的路径手动验证文件是否存在,避免因路径错误导致播放失败。
内容的提问来源于stack exchange,提问作者sarakhan
相关产品推荐
相关产品推荐

