//开始录制的方法
-(void)startRecoder{
//设置label状态显示 显示为正在录制
label.textColor=[UIColor redColor];
label.text=@"正在录制...";
label.textAlignment=NSTextAlignmentCenter;
//判断当前的录制状态和播放状态
if (recoder.isRecording) {
[recoder stop];
}
if (player.isPlaying){
[player play];
}
NSError *err=nil;
//设置录制信息
[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryRecord error:&err];
[[AVAudioSession sharedInstance]setActive:YES error:&err];
//设置采样的详细数据
NSMutableDictionary *settings=[NSMutableDictionary dictionary];
[settings setValue:[NSNumbernumberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
//采样率
[settings setValue:[NSNumber numberWithFloat:44100.0]forKey:AVSampleRateKey];
//通道数目
[settings setValue:[NSNumber numberWithInt:1]forKey:AVNumberOfChannelsKey];
//采样位数 默认 16
[settings setValue:[NSNumber numberWithInt:16]forKey:AVLinearPCMBitDepthKey];
//内存的组织的方式
[settings setValue:[NSNumber numberWithBool:NO]forKey:AVLinearPCMIsBigEndianKey];
//采样信号是整形还是浮点
[settings setValue:[NSNumber numberWithBool:NO]forKey:AVLinearPCMIsFloatKey];
NSString *dir=[NSHomeDirectory()stringByAppendingPathComponent:@"documents"];
//设定路径
savapath=[NSString stringWithFormat:@"%@/testAudio.aif",dir];
//定义URL
NSURL *fileUrl=[NSURL fileURLWithPath:savapath];
if(err){
NSLog(@"录制之前配置出错了");
return;
}//初值化了录制的类
recoder = [[AVAudioRecorder alloc]initWithURL:fileUrlsettings:settings error:&err];
[recoder record];//开始录制
}
-(void)stopRecoder{
label.textColor=[UIColor grayColor];
label.text=@"已停止...";
label.textAlignment=NSTextAlignmentCenter;
if (recoder.isRecording) {
[recoder stop];
}
if (player.isPlaying) {
[player stop];
}
}
//开始播放
-(void)startRecoderPlay{
label.textColor=[UIColor orangeColor];
label.text=@"正在播放...";
label.textAlignment=NSTextAlignmentCenter;
NSError *err=nil;
NSString *dir=[NSHomeDirectory()stringByAppendingPathComponent:@"documents"];
savapath=[NSString stringWithFormat:@"%@/testAudio.aif",dir];
NSURL *fileUrl=[NSURL fileURLWithPath:savapath];
//设定后台播放
[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlaybackerror:&err];
//激活状态
[[AVAudioSession sharedInstance]setActive:YES error:&err];
//使用播放器进行播放
player=[[AVAudioPlayer alloc]initWithContentsOfURL:fileUrlerror:&err];
[player play];
}
-(void)network{
NSURL *url=[NSURLURLWithString:@"http://127.0.0.1/audio/upload.php"];
//导入包中的类 用于上传
ASIFormDataRequest *request=[[ASIFormDataRequestalloc]initWithURL:url];
//设置代理
[request setDelegate:self];
//上传类型
[request setRequestMethod:@"POST"];
NSString *dir = [NSHomeDirectory()stringByAppendingPathComponent:@"documents"];
savapath = [NSString stringWithFormat:@"%@/testAudio.aif",dir];
NSData *data=[NSData dataWithContentsOfFile:savapath];
I=arc4random()%1000;
[request addData:data withFileName:[NSStringstringWithFormat:@"%d.aif",I] andContentType:@"audio/aif" forKey:@"file"];
[request startAsynchronous];//开始。异步
[requestsetDidFinishSelector:@selector(headPortraitSuccess)];//当成功后会自动触发 headPortraitSuccess 方法
[request setDidFailSelector:@selector(headPortraitFail)];//如果失败会 自动触发 headPortraitFail 方法
[request release];
}
-(void)headPortraitSuccess{
NSLog(@"当成功后会自动触发 headPortraitSuccess 方法");
}
-(void)headPortraitFail{
NSLog(@"当失败后会自动触发 headPortraitFail 方法");
}