关于ios下录音

早过忘川 提交于 2020-03-29 12:13:03

http://blog.csdn.net/silencetq/article/details/8447400

我是采用的AVAudioRecorder这个框架来进行录音

这个录音跟官方网站上的speakHere有些区别,最大的区别是,这个必须要录制完成才能处理文件,而speakhere示例是可以实现边录制边上传的效果。

 

#import <AVFoundation/AVFoundation.h>

#import <CoreAudio/CoreAudioTypes.h>

引入框架,这是使用录音功能的基本配备

 

先说明一点,默认AVAudioRecorder录制后的格式是.caf,而大部分的播放器都是不支持这个格式的,下面一段设置是可以让录制格式是wav的格式

 

 

NSDictionary *recordSetting = [[NSDictionary alloc] initWithObjectsAndKeys:

                                  [NSNumber numberWithFloat: 44100.0],AVSampleRateKey, //采样率

                                  [NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey,

                                  [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,//采样位数 默认 16

                                  [NSNumber numberWithInt: 2], AVNumberOfChannelsKey,//通道的数目

                                  [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,//大端还是小端 是内存的组织方式

                                  [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,nil];//采样信号是整数还是浮点数

 

 

 

NSURL *recordedTmpFile = [NSURL fileURLWithPath:[NSTemporaryDirectory()stringByAppendingPathComponent: [NSString stringWithFormat@"%.0f.%@", [NSDatetimeIntervalSinceReferenceDate] * 1000.0@"wav"]]];  //文件名的设置

//Setup the recorder to use this file and record to it.

AVAudioRecorder *recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSettingerror:&error];

 

[recorder prepareToRecord];

[recorder record];

 

下面代码应该是当前.m文件加载时候就设置

 

AVAudioSession * audioSession = [AVAudioSession sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error: &error]; //设置音频类别,这里表示当应用启动,停掉后台其他音频

[audioSession setActive:YES error: &error];//设置当前应用音频活跃性

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!