Flutter中just_audio播放.oga文件iOS报1002错误,求无转换最优方案
解决iOS端.oga格式语音1002 Unsupported URL错误的无转换方案
问题原因
iOS原生AVFoundation框架不支持Ogg Vorbis编码的.oga音频格式,而just_audio默认依赖原生播放器,因此在iOS端会触发1002 Unsupported URL错误,Android端因系统原生支持该格式可正常运行。
无需格式转换的最优解决方案
通过给just_audio添加Ogg格式扩展支持,使其直接解码.oga文件,步骤如下:
添加just_audio的Ogg扩展依赖
在项目的pubspec.yaml中更新依赖,引入针对iOS的Ogg解码扩展:dependencies: flutter: sdk: flutter voice_message_package: git: url: <你的voice_message_package分支地址> just_audio: ^0.9.34 # 确保版本与just_audio_ogg兼容 just_audio_ogg: ^0.1.0执行
flutter pub get完成依赖安装。确认iOS项目配置
- 确保iOS最低部署版本设置为iOS 11.0及以上(just_audio_ogg的最低支持版本),可在
ios/Podfile中修改:platform :ios, '11.0' - 执行
cd ios && pod install,确保CocoaPods正确集成libogg和libvorbis解码库。
- 确保iOS最低部署版本设置为iOS 11.0及以上(just_audio_ogg的最低支持版本),可在
验证播放器运行
voice_message_package基于just_audio实现,只要just_audio加载了Ogg扩展解码器,就能自动处理.oga文件。无需修改voice_message_package核心代码,重新运行iOS项目即可。
注意事项
- 务必保证
just_audio与just_audio_ogg版本兼容,具体对应关系可查看pub.dev上的包说明。 - 若使用的voice_message_package分支指定了固定版本的just_audio,需确保该版本与just_audio_ogg兼容,必要时可fork分支修改
pubspec.yaml中的just_audio依赖版本。
内容的提问来源于stack exchange,提问作者Иван Игонькин
相关产品推荐
相关产品推荐

