2010-02-15 3 views
0

Я создаю аудиофайл .caf, используя AVAudioRecorder, и если я попытаюсь воспроизвести его с помощью AVAudioPlay, я не получаю звук на iPhone (если играется в симуляторе, отлично работает). Если я закрою свое приложение и снова открою файл, игра будет прекрасной. Также я не могу отрегулировать громкость телефона после записи, если не закрываю и не открываю приложение. Есть идеи?AVAudioPlayer не будет воспроизводить аудиофайл после AVAudioRecorder

+0

У меня такая же проблема. Я думаю, проблема заключается в записи, поскольку правильные настройки не применяются. – Biranchi

ответ

0

У меня такая же проблема с aac-файлом. Я использовал ima4, перед которым работала отлично! Я предполагаю, что разница в том, что aac является аппаратным и программным обеспечением ima4. Вы пытались повторно инициализировать игрока, когда файл за ним был перезаписан? Это сработало для меня!

Markus

4

Был столкнулся с той же проблемой. Решила проблему, установив категорию AVAudioSession в режим AVAudioSessionCategoryPlayback. Это мой рабочий код:

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
audioSession.delegate = self; 
[audioSession setCategory:AVAudioSessionCategoryPlayback error:NULL]; 
[audioSession setActive: YES error: nil]; 

Кроме того, убедитесь, что аудиозапись была успешно завершена путем внедрения:

-(void) audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag 
{ 
    NSLog(@"Recording success:%@",flag ? @"YES" : @"NO"); 
} 

И убедитесь, что вы добавили <AVAudioSessionDelegate,AVAudioRecorderDelegate,AVAudioPlayerDelegate>

в вашем объявлении интерфейса.

+0

Это было мое решение. Я сделал запись звука (mp4) и мог воспроизводить только в том случае, если я перезапустил приложение. Я использую MPMoviePlayerController для воспроизведения, поэтому я думаю, что его ошибка в части «Яблоки»: при использовании аппаратного кодирования AVAudioSessionCategory НЕ сбрасывается, создавая нового игрока, даже если avaudiorecorder отменен, остановлен и т. Д. Вам нужно вручную вызвать setCategory: AVAudioSessionCategoryPlayback. –

Смежные вопросы