iOS之录音
来源:互联网 发布:制作精品课程网站软件 编辑:程序博客网 时间:2024/04/28 04:07
先在.h中声明这些熟悉,当然要引进 AVFoundation/AVFoundation.h 头文件
在.m中实现下面方法
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//设置刚打开的录音为不录音状态
self.isRecording =NO;
//播放按钮不能被点击
[self.playsetEnabled:NO];
self.play.titleLabel.alpha = 0.5;
//创建一个临时文件夹用于存放录音
self.tmpFile = [NSURLfileURLWithPath:[NSTemporaryDirectory()stringByAppendingString:@"TmpFile"]];
NSLog(@"%@",self.tmpFile);
//设置后台播放
AVAudioSession *session = [AVAudioSessionsharedInstance];
NSError *error =nil;
[session setCategory:AVAudioSessionCategoryPlayAndRecorderror:&error];
//判断后台有没有播放
if (session ==nil) {
NSLog(@"qqqqqqqq%@", [errordescription]);
}
else
{
[session setActive:YESerror:nil];
}
self.play = [UIButtonbuttonWithType:UIButtonTypeSystem];
[self.playsetTitle:@"播放"forState:UIControlStateNormal];
[self.viewaddSubview:self.play];
[self.playaddTarget:selfaction:@selector(playbu:)forControlEvents:UIControlEventTouchUpInside];
self.play.frame =CGRectMake(100,80, 175,50);
self.record = [UIButtonbuttonWithType:UIButtonTypeSystem];
[self.recordsetTitle:@"录音"forState:UIControlStateNormal];
[self.viewaddSubview:self.record];
[self.recordaddTarget:selfaction:@selector(recordbu:)forControlEvents:UIControlEventTouchUpInside];
self.record.frame =CGRectMake(100,200, 175,50);
}
- (void)recordbu:(UIButton *)sender {
//判断当前录音状态
if (!self.isRecording) {
//变成录音状态
self.isRecording =YES;
//将录音按钮变成停止
[self.recordsetTitle:@"停止"forState:UIControlStateNormal];
//此时将播放按钮设置为不能点击
[self.playsetEnabled:NO];
self.play.titleLabel.alpha = 0.5;
//将录音文件保存到缓存文件
self.recorder = [[AVAudioRecorderalloc] initWithURL:self.tmpFilesettings:nilerror:nil];
//准备记录录音
[self.recorderprepareToRecord];
//启动或者恢复记录录音的录音文件
[self.recorderrecord];
self.player =nil;
}
//录音状态
else
{
self.isRecording =NO;
[self.recordsetTitle:@"录音"forState:UIControlStateNormal];
//录音停止的时候,播放按钮可以点击
[self.playsetEnabled:YES];
self.play.titleLabel.alpha = 1;
//停止录音
[self.recorderstop];
self.recorder =nil;
NSError *error =nil;
self.player = [[AVAudioPlayeralloc] initWithContentsOfURL:self.tmpFileerror:&error];
//当播放的录音为空,打印错误信息
if (self.player ==nil) {
NSLog(@"%@", [errordescription]);
}
self.player.delegate =self;
}
}
- (void)playbu:(UIButton *)sender {
//判断是否在播放,如果正在播放
if ([self.playerisPlaying]) {
//暂停
[self.playerpause];
//按钮显示为播放
[self.playsetTitle:@"播放"forState:UIControlStateNormal];
}
else{
//开始播放
[self.playerplay];
//按钮显示为暂停
[self.playsetTitle:@"暂停"forState:UIControlStateNormal];
}
}
/* 代理方法 录音完成后 */
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
//按钮标题变为播放
[self.playsetTitle:@"播放"forState:UIControlStateNormal];
}
好了就这样简单的录音功能完成。
- iOS之录音
- ios之录音+播放
- IOS开发之录音与播放功能
- IOS录音
- iOS 录音
- iOS录音
- iOS 录音
- iOS 录音
- iOS 录音
- iOS录音
- iOS录音
- IOS多媒体之视频播放与录音的简易实现
- ios之使用录音功能和设置音效播放
- iOS之利用系统自带API实现录音功能
- iOS 8使用技巧之iPhone录音怎么导出
- iOS开发之录音和播放问题AVAudioPlayer
- iOS 录像录音
- 关于ios下录音
- Word Pattern
- Android应用开发性能优化完全分析
- UEStudio正则使用实例三则
- HBase的Like查询
- android选取相册图片,适屏显示
- iOS之录音
- ARC下的单例模式
- Intent中的四个重要属性——Action、Data、Category、Extras
- No3 导航控制器
- C#操作Word总结(三)——表格处理、把Word文档转化成为HTML
- ubuntu 技巧
- 内存各个区域的区别
- Feedforward Deep Networks(要点)
- java中wait/notify机制