IOS开发之录音
为什么要把录音单独拿出来写呢,只是因为这个比较简单,但是就是因为他比较简单,导致我好长一段时间把它给忽视了,但是等到我回想起来的时候,忽然忘记了我到底有没有学过这个东西 ,在此,实在是想想都有点脸红。。。。-。-!;
录音:
相关类介绍:
(1)AVaudioPlayer
(2)setting
<1>AVNumberOfChannelsKey 通道数
<2>AVSampleRateKey 采样率 44100
<3>AVLinearPCMBitDepthKey 比特lv 16 32
<4>AVEncoderAudioQualityKey 质量
<5>AVEncoderBitRateKey 比特采样lv 128000
(3)使用
1、初始化
2、开始录音
3.停止录音
废话不多说,我们直接上代码;
//录音的方法
-(void)startAudioRecoder:(UIButton *)sender{
/**
URL:是本地的一个URL,recodeer需要一个存储的路径
*/
sender.selected = !sender.selected;
if (sender.selected!=YES) {
[recorder stop];
return;
}
NSString * name = [NSString stringWithFormat:@"%d.aiff",(int)[NSDate date].timeIntervalSince1970];
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]stringByAppendingPathComponent:name] ;
NSError *error;
recorder = [[AVAudioRecorder alloc]initWithURL:[NSURL URLWithString:path] settings:@{AVNumberOfChannelsKey:@2,AVSampleRateKey:@44100,AVLinearPCMBitDepthKey:@32,AVEncoderAudioQualityKey:@(AVAudioQualityMax),AVEncoderBitRateKey:@128000} error:&error];
/**
* AVNumberOfChannelsKey 声道数 通常为双声道2
* AVSampleRateKey 采样率 赫兹-》44100
* AVLinearPCMBitDepthKey比特率 8 16 24 32
* AVEncoderAudioQualityKey声音的质量 需要的是一个枚举
AVAudioQualityMin = 0,
AVAudioQualityLow = 0x20,
AVAudioQualityMedium = 0x40,
AVAudioQualityHigh = 0x60,
AVAudioQualityMax = 0x7F
* AVEncoderBitRateKey 音频编码的比特率 BPS传输速率 128000bps
*/
[recorder prepareToRecord];
[recorder record];
NSLog(@"%@",path);
}
//录音结束的时候调用
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{
// 存储文件的位置
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
// 这里我门引用文件操作的类
NSFileManager *manager = [NSFileManager defaultManager];
// 获得所有路径下的文件
NSArray *pathList = [manager subpathsAtPath:path];
NSMutableArray *audiopathList = [NSMutableArray array];
for (NSString *audioPath in pathList) {
// 通过对比延展名来区分是不是所需要的文件
if ([audioPath.pathExtension isEqualToString:@"aiff" ]) {
// 把筛选出来的文件放到数组中
[audiopathList addObject:audioPath];
}
}
NSLog(@"%@",audiopathList);
}
//一定要记住 、我是学过录音的,不能学过之后和没学过一样,实在是罪过罪古;;;;;;;;;