记录一点点。。
来源:互联网 发布:淘宝怎样延长付款时间 编辑:程序博客网 时间:2024/06/05 17:06
录音功能部分代码:
-(void)loadView{
//定义UIView
UIView *view = [[UIViewalloc] initWithFrame:[UIScreenmainScreen].applicationFrame];
view.backgroundColor = [UIColororangeColor];
self.view = view;
//状态显示label的初始化
label = [[UILabelalloc] initWithFrame:CGRectMake(90,40, 160, 40)];
//设置label状态显示显示为正在录制
label.textColor = [UIColorgreenColor];
label.text =@"等待录制";
label.textAlignment =NSTextAlignmentCenter;
[self.viewaddSubview:label];
//定义按钮
UIButton *button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
button.frame =CGRectMake(90,100, 160, 40);
[button setTitle:@"开始录制" forState:UIControlStateNormal];
[button addTarget:selfaction:@selector(startRecoder)forControlEvents:UIControlEventTouchUpInside];
//添加显示
[self.viewaddSubview:button];
//定义按钮
UIButton *btn2 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
btn2.frame =CGRectMake(90,160, 160, 40);
[btn2 setTitle:@"停止录制" forState:UIControlStateNormal];
[btn2 addTarget:selfaction:@selector(stopRecoder)forControlEvents:UIControlEventTouchUpInside];
//添加显示
[self.viewaddSubview:btn2];
//定义按钮
UIButton *btn3 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
btn3.frame =CGRectMake(90,220, 160, 40);
[btn3 setTitle:@"播放录制" forState:UIControlStateNormal];
[btn3 addTarget:selfaction:@selector(startRecoderPlay)forControlEvents:UIControlEventTouchUpInside];
//添加显示
[self.viewaddSubview:btn3];
}
//开始录制的方法
-(void)startRecoder{
//设置label状态显示显示为正在录制
label.textColor = [UIColorredColor];
label.text =@"录制中...";
label.textAlignment =NSTextAlignmentCenter;
//判断当前的录制状态和播放状态
if (recoder.isRecording) {
[recoderstop];
}
if (player.isPlaying) {
[playerstop];
}
NSError *err = nil;
//设定录制信息
[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryRecorderror:&err];
[[AVAudioSessionsharedInstance] setActive:YESerror:&err];
//设置采样的详细数据
NSMutableDictionary *settings = [NSMutableDictionarydictionary];
[settings setValue:[NSNumbernumberWithInt:kAudioFormatLinearPCM]forKey:AVFormatIDKey];
[settings setValue:[NSNumbernumberWithFloat:44100.0]forKey:AVSampleRateKey];//采样率
[settings setValue:[NSNumbernumberWithInt:1]
forKey:AVNumberOfChannelsKey];//通道的数目
[settings setValue:[NSNumbernumberWithInt:16]forKey:AVLinearPCMBitDepthKey];//采样位数默认 16
[settings setValue:[NSNumbernumberWithBool:NO]forKey:AVLinearPCMIsBigEndianKey];//大端还是小端是内存的组织方式
[settings setValue:[NSNumbernumberWithBool:NO]forKey:AVLinearPCMIsFloatKey];//采样信号是整数还是浮点数
//定义路径,设定要保存的位置 /BDEIDJDFDSF-SDfDS4232/document
NSString *dir = [NSHomeDirectory()stringByAppendingPathComponent:@"documents"];
//设定路径
NSString *savePath = [NSStringstringWithFormat:@"%@/testAudio.aif",dir];
NSLog(@"savaPath:%@",savePath);
//定义URL
NSURL *fileUrl = [NSURLfileURLWithPath:savePath];
if (err) {
NSLog(@"录制之前配置出错了!");
return;
}
//初始化了录制的类
recoder = [[AVAudioRecorderalloc] initWithURL:fileUrlsettings:settings error:&err];
//开始录制
[recoderrecord];
}
//停止录制的方法
-(void)stopRecoder{
//设置label状态显示显示为正在录制
label.textColor = [UIColorgreenColor];
label.text =@"已停止...";
label.textAlignment =NSTextAlignmentCenter;
//正在录制的时候,要停止录制,正在播放的时候,要停止播放
if (recoder.isRecording) {
[recoderstop];
}
if(player.isPlaying){
[playerstop];
}
}
//开始播放
-(void)startRecoderPlay{
//设置label状态显示显示为正在录制
label.textColor = [UIColorpurpleColor];
label.text =@"正在播放...";
label.textAlignment =NSTextAlignmentCenter;
NSError *err = nil;
//获得录制的文件的路径
//定义路径,设定要保存的位置 /BDEIDJDFDSF-SDfDS4232/document
NSString *dir = [NSHomeDirectory()stringByAppendingPathComponent:@"documents"];
//设定路径
NSString *savePath = [NSStringstringWithFormat:@"%@/testAudio.aif",dir];
//定义URL
NSURL *fileUrl = [NSURLfileURLWithPath:savePath];
//设定后台播放
[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:&err];
//设定为激活状态
[[AVAudioSessionsharedInstance] setActive:YESerror:&err];
//使用播放器进行播放
player = [[AVAudioPlayeralloc] initWithContentsOfURL:fileUrlerror:&err];
[playerplay];
}
- 一点点记录
- 记录一点点。。
- 每天记录一点点,积少成多
- 记录一点点001
- 记录一点点002
- 每天记录一点点
- 坚持每天记录一点点
- 记录Raphael的一点点事
- ubuntu 命令每天记录一点点
- 记录我忽略的一点点
- ACCESS+ADO学习记录一点点
- android同步的一点点记录
- 学习记录,每天进步一点点
- 记录Android webView 的一点点
- 每天学习一点点,每天记录一点点,android之路越走越远
- 记录一段最近学术的一点点知识
- Fragment 生命周期的一点点个人记录
- 联合主键条件过滤查询,记录一点点
- Toolchains/XcodeDefault.xctoolchain/usr/bin/lex
- 正则表达式笔记
- Hadoop-Hadoop应用总结(转载)
- 产品经理必看书籍推荐
- 详解vsftpd搭建ftp和ftps
- 记录一点点。。
- PHP上传文件出现文件名被截掉第一个字符的问题
- cocos2d-x学习篇之网络(http)篇
- Asterisk 11的Web RTC功能
- 让我过着无奈的人生,沉默是最好的选择
- 【Cocos2d-x游戏引擎开发笔记(21)】CCHttpRequest联网
- LA5009三分
- linux Vim的高亮颜色设置
- 将Datatable转化成json发送前台