关于iOS设备播放amr格式的音频文件

在iOS 4.3之后,AVAudioPlayer是不支持播放amr文件格式的音频,AudioServicesPlaySystemSound虽支持少于三十秒的amr文件播放,但是只能用做铃声播放,不能当音频来播放。

对此需要将amr格式转码成wav格式,这里面需要引入VoiceConvert第三方库,需要确认其支持arm64,否则会报错

 NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
//把data写入文件中,取名AudioTempFile
[data writeToFile:[NSTemporaryDirectory() stringByAppendingPathComponent:@"AudioTempFile"] atomically:YES];
//将amr格式的数据转成wav
[EMVoiceConverter amrToWav:[NSTemporaryDirectory() stringByAppendingPathComponent:@"AudioTempFile"] wavSavePath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"AudioTempConvertFile"]];
//读取新的wav格式音频文件
NSData* convertData = [NSData dataWithContentsOfFile:[NSTemporaryDirectory() stringByAppendingPathComponent:@"AudioTempConvertFile"]];
//初始化播放器,播放converData
self.player = [[AVAudioPlayer alloc] initWithData:convertData error:nil];
self.player.delegate = self;
[self.player prepareToPlay];
[self.player play];

最后附上第三方库VoiceConvert

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、笔者认为core data就是ios内置的一个操作sqlite的框架。 a、首先了解Core data的基本信...
    慧惠阅读 674评论 0 0
  • 洪瑞最近状态不佳,和他聊了聊人生。我:你毕业了打算做什么。H:我想做平面设计,可是没有人会去接受一个聋人。因为交流...
    乔畅阅读 241评论 0 2
  • 其实去年我还在玩扣扣 到下半年才真正玩微信 最开始玩的时候,也只是看看文章而已 但接触了很多朋友以后 发现了微信的...
    刘娇阅读 587评论 3 21
  • 易效能线下课G182期143号沈家芬第三周周检视 亲爱的G182期11组的伙伴们大家早上好,感恩遇见易效能,感...
    7组61号沈家芬阅读 381评论 0 1
  • 今天,早上妈妈陪我到学校早读,我们读了孝经,明天我们就参加舞蹈比赛啦,妈妈给我买了小白鞋,和白色袜子,我明天要早早...
    褚佳琦阅读 122评论 0 0