Pregunta

Tengo una aplicación con diferentes puntos de vista. El menú principal no tiene ningún sonido, pero los siguientes puntos de vista reproducir sonidos utilizando la clase AVAudioPlayer.

Así que cuando alguien lanza la aplicación y se encuentra en la menú principal , si se cambia el volumen de su dispositivo, que en realidad cambia el "Ringer" volumen . Si se procede a los otros puntos de vista (en los que tenemos sonido), cuando se cambia el volumen del dispositivo que cambia el volumen del juego , no el timbre.

¿Hay una manera de tener a cambiar el Volumen de aplicación: cada vez, desde el comienzo de mi aplicación, antes de crear cualquier instancia de AVAudioPlayer ?? (Algunos mal entendido eso. Lo que quiero decir es que la plaza que las superposiciones de SO en la pantalla cada vez que se pulsa los botones de volumen. Si está en la pantalla de inicio, cambia el "timbre". Cuando estás en un juego, se cambia el volumen de la aplicación).

PS: Me inicializar el AudioSession en mi menú principal, pero eso no hace ninguna diferencia. La única truco que he encontrado es en realidad para crear una instancia de AVAudioPlayer en mi menú principal y ponerlo en "preparedToPlay". Pero preferiría escuchar lo que los otros están haciendo (una solución adecuada).

¿Fue útil?

Solución

Hay una clase llamada MPVolumeView que se utiliza para este propósito. He aquí una buen enlace que explica el uso de MPVolumeView

Adición MPVolumeView a la vista creará un regulador de volumen similar al iPod que cambiará cuando cambie el volumen con los botones del eje de balancín. El valor será automáticamente utilizada por la clase AVAudioPlayer.

Para realizar un seguimiento de volumen sin el deslizador

Los botones del eje de balancín por defecto cambiar el volumen de aplicación sólo cuando algunos de audio está jugando. Hay una solución a este problema - este SO hilo discute algunas soluciones.

Otros consejos

Los botones de volumen afectará el volumen del timbre si su aplicación no se está reproduciendo audio. Algunas aplicaciones trabajan alrededor de esto se reproduce un archivo de audio en silencio. Cuidadosamente en cuenta cómo se hace esto, sin embargo -? Está ajustando el volumen de aplicaciones cuando no está jugando en realidad algo realmente útil

Parece que usted debería ser capaz de hacer lo que quiere mediante la modificación de las propiedades AudioSession, pero no he encontrado la forma (si es posible).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top