您的位置:首页 > 移动开发 > IOS开发

录音

2016-07-13 22:55 555 查看
简单实现录音功能 

声明全局成员变量

@property(nonatomic,strong)AVAudioRecorder *recorder ;

@property (nonatomic,
strong) AVAudioPlayer * audioPlayer;
@property (nonatomic,
strong) CADisplayLink *link;
@property (nonatomic,
assign) double slientDuration;

- (CADisplayLink *)link
{
    if (!_link) {
        self.link = [CADisplayLink
displayLinkWithTarget:self
selector:@selector(update)];
    }
    return
_link;
}
//开始录音

- (IBAction)startRecording:(id)sender {
    
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)
lastObject] stringByAppendingString:@"tesst.caf"];
    NSURL *url = [NSURL
fileURLWithPath:path];
    
    NSMutableDictionary *setting = [NSMutableDictionary
dictionary];
    
    //音频格式
    setting[AVFormatIDKey] =
@(kAudioFormatAppleIMA4);
    //音频采样率
    setting[AVSampleRateKey]=
@(8000.0);
    //音频通道数
    setting[AVNumberOfChannelsKey] =
@(1);
    //线性音频的位深度
    setting[AVLinearPCMBitDepthKey] =
@(8);
    
//    创建录音器
    AVAudioRecorder *recorder = [[AVAudioRecorder
alloc] initWithURL:url
settings:setting error:nil];
    
    //允许测量分贝
    recorder.meteringEnabled =
YES;
    //缓冲
    [recorder prepareToRecord];
    //录音
    [recorder record];
    self.recorder = recorder;
}

- (IBAction)stopRecording:(id)sender {
   
    [self.recorder
stop];
}

   
//真机中文件读取不到  可以在模拟器中取到声音文件

- (IBAction)playRecording:(id)sender {
    
    //加载音乐文件
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)
lastObject] stringByAppendingString:@"tesst.caf"];
    
//    NSURL *url = [[NSBundle mainBundle] URLForResource:path withExtension:nil];
    
    NSData *data = [[NSFileManager
defaultManager] contentsAtPath:path];
    
    NSError *error =
nil;
    _audioPlayer = [[AVAudioPlayer
alloc] initWithData:data
error:&error];
    
//    _audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    
    NSLog(@"%@", error);
    
    //缓冲
    [_audioPlayer
prepareToPlay];
    [_audioPlayer
play];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 音频