使用Expo Audio组件录制导出.mp3格式时报错1718449215如何解决
你遇到的报错Error Domain=NSOSStatusErrorDomain Code=1718449215对应的是iOS系统音频格式不支持错误,根源是苹果AVFoundation框架原生没有提供MP3编码器,Expo Audio的iOS端底层依赖AVFoundation,所以直接配置录制输出为MP3格式是不被支持的。
解决方法
- 第一步:先调整iOS端的录音配置,改为系统原生支持的格式,先录制为AAC编码的m4a文件,修改后的配置参考如下:
const recording = new Audio.Recording(); await recording.prepareToRecordAsync({ isMeteringEnabled: true, android: { extension: '.m4a', outputFormat: RECORDING_OPTION_ANDROID_OUTPUT_FORMAT_MPEG_4, audioEncoder: RECORDING_OPTION_ANDROID_AUDIO_ENCODER_AAC, sampleRate: 44100, numberOfChannels: 2, bitRate: 128000, }, ios: { extension: '.m4a', outputFormat: Audio.RECORDING_OPTION_IOS_OUTPUT_FORMAT_MPEG4AAC, audioQuality: Audio.RECORDING_OPTION_IOS_AUDIO_QUALITY_MEDIUM, sampleRate: 44100, numberOfChannels: 2, bitRate: 128000, }, })
- 第二步:录制完成得到m4a音频文件后,使用适配Expo的React Native音频转码库,将其转换为MP3格式即可,配置转码参数时指定输出格式为MP3即可完成转换。
注意:需要提前申请对应平台的录音权限,iOS需要在项目配置中添加麦克风使用权限说明,安卓需要声明录音权限,否则也可能触发相关报错。
内容的提问来源于stack exchange,提问作者Chuan yu
相关产品推荐
相关产品推荐

