我正在使用AVAudioRecorder录制音频,它录制的流畅,我可以播放或获取保存文件,我使用以下代码初始化AVAudioRecorder
NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithInt:AVAudioQualityLow], AVEncoderAudioQualityKey,
[NSNumber numberWithInt:16], AVEncoderBitRateKey,
[NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
[NSNumber numberWithFloat:16000], AVSampleRateKey,
nil];
NSArray *searchPaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath_ = [searchPaths objectAtIndex: 0];
NSString *pathToSave = [documentPath_ stringByAppendingPathComponent:[self dateString]];
self.pathfinal = pathToSave;
NSURL *url = [NSURL fileURLWithPath:pathToSave];
recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];
if (!recorder)
{
return NO;
}
recorder.delegate = self;
recorder.meteringEnabled = YES;
if (![recorder prepareToRecord])
{
return NO;
}
if (![recorder record])
{
return NO;
}
但我的一些客户在停止录制时会面临一个问题(它将保存在磁盘上的步骤)它不会保存创建文件的任何内容,但每次录制时都没有数据。
但是当使用不同的iPhone时,这不是问题。 iPhone有 2gb 可用硬盘空间。知道是什么原因造成的吗?
答案 0 :(得分:1)
就我而言,只需尝试不即可使用AVEncoderBitRateKey来解决问题。
请参阅此question。
答案 1 :(得分:1)
不需要AVEncoderBitRateKey来录制AAC格式的音频。 AAC是一种低质量的录音。 AVEncoderBitRateKey用于录制高质量的音频。