实现功能主要为:按下按钮开始录音,时间条开始计时,松开停止录音,时间条停止计时,滑开手指放弃录音。保存录音文件到本地document文件中。
一、导入头文件和代理
#import <AVFoundation/AVFoundation.h>
<AVAudioRecorderDelegate>
二、在.h文件中声明
{
MBProgressHUD *HUD;
UILabel *noticeLabel;//提示标签
}
@property (nonatomic,strong) UIView *recordView;//录音界面
@property (nonatomic,strong) UIButton *recordBtn;//录音按钮
@property (nonatomic,strong) UILabel *timeLabel; //录音计时
@property (nonatomic,strong) AVAudioRecorder *audioRecorder;//音频录音机
@property (nonatomic,assign) NSInteger countNum;//录音计时(秒)
@property (nonatomic,strong) NSTimer *timer1; //控制录音时长显示更新
@property (nonatomic,copy) NSString *cafPathStr;
三、正文
在.m文件中添加
#define margin 15
#define kSandboxPathStr [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]
#define kCafFileName @"myRecord.caf"
/**
*存放所有的音乐播放器
*/
static NSMutableDictionary *_musices;
//页面布局
- (void)setupView
{
CGFloat recordH = SCREEN_HEIGHT * 0.4;
CGFloat availH = recordH - margin * 4;
_recordView = [[UIView alloc]initWithFrame:CGRectMake(0, SCREEN_HEIGHT - recordH, SCREEN_WIDTH, recordH)];
_recordView.backgroundColor = [UIColor whiteColor];
[self addSubview:_recordView];
CGFloat timeH = availH * 0.2;
CGFloat btnH = availH * 0.7;
CGFloat noticeH = availH * 0.1;
self.timeLabel.frame = CGRectMake(0, margin, SCREEN_WIDTH, timeH);
self.recordBtn.frame = CGRectMake((SCREEN_WIDTH - btnH)*0.5, CGRectGetMaxY(self.timeLabel.frame) + margin, btnH, btnH);
self.recordBtn.layer.cornerRadius = self.recordBtn</