В приложении, которое я сейчас разрабатываю, я более или менее попал в кирпичную стену.В приложении вы можете ввести представление, в котором перечислены все локально сохраненные аудиофайлы в стандартном табличном представлении.Отсюда вы можете нажать на них, чтобы воспроизвести их, или нажать кнопку записи ниже, чтобы сделать новую запись, которая впоследствии автоматически сохранится в изолированной программной среде приложений.
Теперь все это на самом деле работает отлично, большинствовремени.Я могу сидеть и делать записи и воспроизводить их.Я могу сидеть и проверять это около 45 без каких-либо проблем.Тогда вдруг в случайное время я столкнусь с очень странной проблемой.Проблема в том, что рекордер внезапно начинает сохранять только поврежденные файлы, которые не могут быть воспроизведены и имеют размер 4096 байт, независимо от того, как долго вы записываете.
Я использую AVAudioRecorderсовершенно стандартным способом, настроив его так:
// Specific settings for the audio recording
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:8],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:22000.0],
AVSampleRateKey,
nil];
NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc]
initWithURL:contentURL
settings:recordSettings
error:&error];
audioRecorder.delegate = self;
Я начинаю запись следующим образом:
if (!isRecording) {
isRecording = YES;
[audioRecorder record];
// Start the timer
recordTiming = [NSDate date];
timeCheck = [NSTimer
scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(timeCheck)
userInfo:nil
repeats:YES];
}
И затем останавливаю ее следующим образом:
if (isRecording) {
[audioRecorder stop];
// Stop the timer
[timeCheck invalidate];
}
Я понятия не имею, что может вызвать эту проблему.До сих пор я попробовал почти все.Я проверяю, чтобы убедиться, что объект рекордера перерабатывается должным образом (так что у вас теперь есть новый экземпляр для каждой записи), и что старая ссылка освобождается и т. Д., Чтобы убедиться, что она не имеет ничего общего с мешающими объектами,но ничего не решает.
Есть ли кто-нибудь, кто хоть немного понимает, что может вызвать проблемы с поврежденными файлами?