Запишите вывод AVAudioPlayer, используя AVAudioRecorder - PullRequest
3 голосов
/ 09 июня 2009

В моем приложении пользователь воспроизводит звук нажатием кнопки. Есть несколько кнопок, которые можно играть одновременно. Звуки воспроизводятся с использованием экземпляров AVAudioPlayer. Я хочу записать вывод этих экземпляров, используя AVAudioRecorder. Я все это настроил, файл создан и записан, но при воспроизведении он не воспроизводит звук. Это просто безмолвный файл длины записи. Кто-нибудь знает, если есть настройка, которую я пропускаю с AVAudioPlayer или AVAudioRecorder? Спасибо

Ответы [ 4 ]

3 голосов
/ 13 декабря 2012

Невозможно записать выход AVAudioPlayer как вход для AVAudioRecorder для записи. Вы можете использовать аудио буфер для хранения воспроизводимых файлов и сохранения их в файл.

2 голосов
/ 19 июня 2009

Возможно, было бы легче помочь, если бы мы увидели ваш код.

Вам также следует проверить следующую ссылку, чтобы убедиться в правильности настройки AVAudioRecorder: Как записать звук на iPhone с AVAudioRecorder?

Хотя эта ссылка показывает, как настроить запись с микрофона, она все равно может быть вам полезна.

1 голос
/ 26 декабря 2010

Надеюсь, это поможет, по крайней мере, искать что-то еще.

У меня та же проблема, я пытаюсь записать микс разных звуков, воспроизводимых в разное время, при воспроизведении основного трека, и обнаружил, что AVAudioRecorder записывает только с микрофона, так что это будет работать.

То, что я нашел, все еще должен прочитать документ и проверить его, это Audio Converter Services, я думаю, что это может работать, но я только что прочитал несколько строк.

Еще раз, извините, что говорю вам, но вы смотрите не в ту сторону, я надеюсь, что мой ответ поможет

1 голос
/ 03 декабря 2010

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

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

Также убедитесь, что аудиозапись была успешно завершена, выполнив:

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

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

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

...