2009-10-23 7 views
6

En mi aplicación, grabo y reproduzco audio al mismo tiempo. La aplicación está casi terminada. Pero hay una cosa, que me molesta. Cuando la sesión de audio está configurada en PlayAndRecord, los sonidos se vuelven silenciosos en comparación con los mismos sonidos con la categoría SoloAmbient. ¿Hay alguna manera de hacer que el sonido sea más fuerte usando PlayAndRecord?Pregunta SDK audioSession

Respuesta

7

Cuando utiliza la sesión para reproducir y grabar, la reproducción sale del altavoz utilizado para el teléfono, de lo contrario, sale el altavoz ubicado en la parte inferior del teléfono. esto es para evitar comentarios. se puede anular este como tal (pero cuidado con los comentarios, no es un problema si no están haciendo ambos a la vez)

//when the category is play and record the playback comes out of the speaker used for phone conversation to avoid feedback 
    //change this to the normal or default speaker 

    UInt32 doChangeDefaultRoute = 1;   
    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute); 

este código funciona en 3.1.2, antes SDK que tiene que hacer de manera diferente.

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
    status = AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride); 

que tienen que tener cuidado con este método, se anulará incluso si tiene conectados los auriculares, usted tiene que controlar las interrupciones y cambiar las rutas en consecuencia. mucho mejor ahora usando 3.1.2

-1

Pida al usuario que se conecte los auriculares?

La combinación de auriculares + micrófono no presenta este problema.

No sé si es un error, una consecuencia del hardware de audio, o si la reproducción silenciosa es solo una forma intencional y complicada de obtener grabaciones más limpias.

ACTUALIZACIÓN

descubrí que el establecimiento de la sesión PlayAndRecord cambia su ruta de audio al receptor.
Al parecer, el caso de uso es para aplicaciones de telefonía donde el usuario sostiene el dispositivo hasta su oreja.

Si eso no viola el Principio de la Menos Sorpresa, no sé lo que hace.