AVAudioRecorder未将录制保存到指定的路径

时间:2014-05-10 05:17:43

标签: ios objective-c avaudiorecorder

我正在使用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 可用硬盘空间。知道是什么原因造成的吗?

2 个答案:

答案 0 :(得分:1)

就我而言,只需尝试即可使用AVEncoderBitRateKey来解决问题。

请参阅此question

答案 1 :(得分:1)

不需要AVEncoderBitRateKey来录制AAC格式的音频。 AAC是一种低质量的录音。 AVEncoderBitRateKey用于录制高质量的音频。