avfoundation avaudioplayer ios7 avaudiorecorder xcode5

avfoundation - AVAudioRecorder y AVAudioPlayer con iOS 7 no funcionan correctamente



ios7 xcode5 (4)

Estaba teniendo el mismo problema ... Parece que Apple ahora requiere el uso de AVAudioSession antes de usar AVAudioRecorder . No pude encontrar ninguna documentación sobre este cambio en el requisito, sin embargo, la parte de grabación de mi aplicación ahora está funcionando.

Todo lo que hice fue crear una audioSession , establecer la categoría y configurarla para que esté activa. Hice esto antes de llamar a prepareToRecord y lo intenté después de la llamada a prepareToRecord... ambas formas funcionaron.

Espero que esto solucione tu problema!

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil]; [audioSession setActive:YES error:nil];

Estoy teniendo algún problema con el marco de AVFoundation. Escribí una aplicación de demostración para grabar audio, reproducirlo y calcular decibeles con iOS 6. Ambos funcionaron con el simulador de iOS incorporado xcode 4.6.3 y mi iPhone con iOS 6.1.3

Ahora he actualizado xcode a la versión 5 y he probado la aplicación nuevamente. Con el simulador incorporado funciona (ambos con simuladores iOS 6.1 y iOS 7). Pero cuando implemento la aplicación en mi iPhone, con iOS 7.0, ya no funciona.

Estoy usando AVAudioRecorder y AVAudioPlayer .

No sé cuál podría ser el problema. ¿Alguna sugerencia? ¡gracias!


Mismo problema

Lo he arreglado utilizando AVAudioSession. Además de configurar correctamente la categoría de AVAudioSession :

al grabar uso:

[self.audioSession setCategory:AVAudioSessionCategoryRecord error:nil];

cuando se juega uso:

[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];

Si no cambio la categoría cuando juego, el registro del volumen es muy bajo.

¡Buena suerte!


Tal vez usted no tiene acceso al micrófono. Usa este código:

if ([audioSession respondsToSelector:@selector(requestRecordPermission:)]) { [audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) { if (granted) { // Microphone enabled code } else { // Microphone disabled code } }]; }


También me enfrento a este problema, así que primero tuve que asegurarme de que la aplicación tenía permiso para usar el micrófono yendo a la configuración -> privacidad -> micrófono y luego obtuve el éxito.