简单易用的语音录制、播放控件。流程和界面参考微信
-
Demo中包含两个控件:
录音控件:'LGSoundRecorder'
播放控件:'LGSoundPlayer'
-
录音文件格式为.caf,提供转amr方法,可转成amr发给安卓
-
播放语音格式支持:amr、caf、wav、mp3
-
具体的使用细节请参考Demo中的ViewController.m
-
语音录放的一些简单分析请参考 iOS通信软件中的语音录制与播放
- 拷贝'Class'文件夹到你的工程
- #import "LGAudioKit.h"
- 开始播放
- (void)playAudioWithURLString:(NSString *)URLString atIndex:(NSUInteger)index;
URLString: 语音文件本地路径。如果要播放网络文件,先下载到本地,再播放
- 停止播放
- (void)stopAudioPlayer
- 代理方法
- (void)audioPlayerStateDidChanged:(LGAudioPlayerState)audioPlayerState forIndex:(NSUInteger)index
- 播放状态 LGAudioPlayerState
typedef NS_ENUM(NSUInteger, LGAudioPlayerState){
LGAudioPlayerStateNormal = 0,/**< 未播放状态 */
LGAudioPlayerStatePlaying = 2,/**< 正在播放 */
LGAudioPlayerStateCancel = 3,/**< 播放被取消 */
};
- 开始录音
- (void)startSoundRecord:(UIView *)view recordPath:(NSString *)path;
view: 传入录音动画的父view(录音动画要展示的依托view); path: 语音文件存储路径
- 结束录音
- (void)stopSoundRecord:(UIView *)view;
- 录音失败/取消录音
- (void)soundRecordFailed:(UIView *)view;
- 提示‘松开手指,取消录音’。这个状态下,录音继续。
- (void)readyCancelSound;
- 恢复正常提示动画。(手指重新滑动到按钮范围内,提示‘手指上滑,取消发送’)
- (void)resetNormalRecord;
- 提示‘说话时间太短’
- (void)showShotTimeSign:(UIView *)view
- 展示录音倒计时
- (void)showCountdown:(int)countDown;
countDown: 剩余时间,秒。
- 文件格式转换,caf文件转换为amr
- (NSData *)convertCAFtoAMR:(NSString *)fielPath;
- 获取录音时长
- (NSTimeInterval)soundRecordTime;
- iOS7及以上