Файл AVAudioRecorder не будет воспроизводиться, кроме как с VLC - PullRequest
1 голос
/ 31 августа 2010

Хорошо.Я думаю, что здесь чего-то не хватает, и я новичок в Core Audio, но я просмотрел документы Apple и остальную часть Интернета безрезультатно.Я также разместил этот же вопрос на форумах Apple Dev и не получил ответов.Я надеюсь, что сообщество StackOverflow может помочь мне.

Я записываю аудио и воспроизводю его очень хорошо, используя AVAudioRecorder и AVAudioPlayer.Мое приложение также использует общий доступ к файлам, поэтому пользователь может экспортировать аудио и воспроизводить его в другом месте.Здесь моя проблема. Я записываю с использованием кодировки AAC, но файл не будет импортирован в iTunes.Он прекрасно воспроизводится с использованием VLC и, глядя на информацию о мультимедиа, его кодек - mp4a, что я и ожидал.

Чтение в Интернете его звучания как AAC требует обертки mp4a.Может кто-нибудь просветить меня или направить меня к некоторой информации по этому вопросу?Возможно, я могу использовать API или стороннюю библиотеку?

Я играл с примерами SpeakHere и ExtAudioFileConvertTest, добавил общий доступ к файлам, записанный как AAC, но они все равно не будут воспроизводиться в iTunes.

Вот мой код записи.Очень благодарен за любые предложения или рекомендации.Спасибо!

 NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
      [NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
      [NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
      [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
      [NSNumber numberWithInt: AVAudioQualityMax],AVEncoderAudioQualityKey,
      nil];

     ...     


NSError *error;
recorder = [[AVAudioRecorder alloc] initWithURL: soundFileURL
                               settings: recordSettings
                                error: &error];

1 Ответ

2 голосов
/ 09 октября 2010

Понял это с некоторой помощью некоторых на форумах Apple.Все, что мне нужно было сделать, это установить расширение имени файла на m4a!Изменение расширения вручную и попытка воспроизведения в iTunes не работает.Кажется, что-то под покровом в AVAudioRecorder использует расширение для правильного кодирования файла.Просто установите расширение правильно, и оно прекрасно работает.Надеюсь, что это поможет кому-то еще в будущем.

...