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.