iOS边录边播放、实现试听

需求背景:

实现一个边录制边播放的功能、可以暂停录制试听、同时需要实时显示音波图

以下是采坑之路

方法一:AVAudioRecorder录音wav格式

面临问题:暂停的时候,没有生成真正的音频文件,因此不能试听

思路:暂停就是结束,然后把一段段音频拼接在一起,两段wav音频用音轨的方式合并是没有停顿的

结果:由于wav是由头文件和音频文件组成,合并到一起的wav 通过lame转mp3只有沙沙沙的噪音。此方法失败!!!

 

方法二:wav转MP3

思路:先把每一段wav转mp3,然后拼接mp3

结果:mp3的拼接方式是用nsdata,这里又出现一个问题,wav转mp3包含了头文件,mp3合并后中间会有很明显的停顿。此方法失败!!!

 

方法三:换录音api

思路:使用AVAudioQueue,边录制边转码

结果:该api没有实时获取音量的方法,因此无法绘制录音音波图,满足不了产品需求。此方法失败!!!

 

方法四:使用pcm(一种未经过任何编码压缩的数字信号)

思路:直接录制原编码数据

思路:pcm和wav的头文件都是44字节,然后尝试着截取掉头文件,然后在转码mp3拼接文件

结果:和方法二一样,此方法失败!!!

 

方法五:AVAudioRecorder,caf编码格式

思路:录制caf同时开辟子线程转码mp3

结果:哈哈哈!成功了!!!原来录制的caf音频格式,在暂停的时候也会生成音频文件,因此省去了拼接的步骤。

 

结论:使用AVAudioRecorder,caf编码格式即可实现边录边播!!

 

特别鸣谢:雷总

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值