2011-01-14 12 views
8

Estoy escribiendo una aplicación para iPad que utiliza el motor de texto a voz "Flite" para anunciar eventos específicos. El motor Flite usa una instancia de AVAudioPlayer para reproducir el audio de voz una vez que lo renderiza. Para divertirme, decidí agregar algunos controles simples a mi aplicación para permitirle al usuario controlar la reproducción del iPod (siguiente, anterior, reproducir/pausa y volumen - los aspectos básicos) mientras mi aplicación se ejecuta usando MPMusicPlayerController (por supuesto).Nivel de volumen de iPod afecta el volumen de la aplicación Nivel

El problema que tengo es que cuando ajusto el volumen del iPod usando MPMusicPlayerController, todo mi audio se ve afectado, incluidos otros efectos de sonido y el audio del habla. Ajusté el volumen para estos otros reproductores de audio (instancias de AVAudioPlayer) a 1.0 antes de reproducir el sonido, pero parece que el volumen siempre está limitado a lo que el volumen del iPod esté configurado en ...

¿Es esto normal? ¿Y qué puedo hacer para evitarlo? Quiero que el audio de mi aplicación se reproduzca a volumen completo del sistema, independientemente del nivel de volumen del reproductor de iPod. (Ejemplo: el usuario configuró el volumen del sistema al 80% del máximo del dispositivo. Quiero que mi aplicación reproduzca audio al 100% de ese 80% mientras le permite al usuario ajustar la reproducción de audio del iPod al 0-100% de ese 80 %.) Nota: No estoy interesado en "agacharme", pero siempre estoy bajando el volumen del iPod mientras mi aplicación está ejecutándose (música de fondo).

También tengo el problema de que, a veces, cuando inicia la aplicación por primera vez y presiona reproducir en el reproductor iPod (que envía la llamada [reproducción de jugador]), el iPod no responde. Si presiono el botón de inicio, accedo a la aplicación iPod y comienzo la reproducción; luego, al regresar a mi aplicación, funciona bien. ¿Qué trato con eso?

Gracias de antemano por cualquier ayuda !!

+0

Hola Vic, obtuviste la solución para esto ya que también estoy enfrentando el mismo problema con MPMusicPlayerController & AVAudioPlayer. –

+0

No, implementé "ducking" pero esta solución no es el comportamiento que yo o mis usuarios tenemos ... – Vic320

Respuesta

1

Podría tener algo que ver con la categoría de sesión de audio que ha especificado. Consulte el Audio Session Programming Guide para ver si ha elegido la categoría correcta.

+0

Esta documentación no fue de ayuda. Lo único que puedo hacer es implementar "ducking", lo que he hecho, pero esto no es lo que yo, o mis usuarios quieren ... – Vic320

+0

¿Qué categoría de sesión de audio está usando? – jdmunro

+0

Estoy usando la categoría: kAudioSessionCategory_MediaPlayback. – Vic320

0

Los botones de volumen en el lateral controlan el volumen del sistema y, por extensión, el volumen de los sonidos de su aplicación.

Supongo que se considera que es el control de volumen maestro.

+0

No estoy tratando de anular el control de volumen del botón lateral. Estoy tratando de bajar el volumen de la aplicación del iPod en relación con el volumen de mi aplicación.Sin embargo, cuando baje el volumen de la aplicación del iPod, también disminuirá el volumen de mi aplicación. Todos los niveles de volumen son iguales o menores que el volumen principal establecido por los botones. – Vic320

0

se puede ajustar el volumen de muestras específicas o sonidos usando setVolume

[artículo setVolume] del AVItem

Se puede crear un AVItem hacer referencia a un archivo de sonido existente en su aplicación o en el iPhone. El código es bastante simple y se ve así ->

AVItem * elemento [[AVItem alloc] initWithPath: @ "el archivo"]; [item setVolume];

Por cierto, esto no afectará al resto del canal de audio (instanciado por algún objeto AVController) y el volumen que ha establecido en su código no se mostrará en su pantalla, así que no estoy seguro si puede cambiar en tiempo de ejecución.

+0

Esto no funciona. Incluso si configuré el volumen al 100% (1.0), nunca será más alto que el volumen de la aplicación iPod. No veo por qué la configuración del volumen del iPod debería afectar el volumen de mi aplicación. Por supuesto, espero que el volumen de mi aplicación no exceda el nivel de volumen principal. Me pregunto si Apple hace que el volumen maestro sea el mismo que el volumen del iPod ... – Vic320

+0

¿Estás usando un AVAudioPlayer? – luca590

+0

si no es posible que desee considerarlo. Porque eso está en la misma API que [setVolume] así que probablemente funcione mucho mejor – luca590

Cuestiones relacionadas