2011-02-01 14 views
23

¿Hay alguna manera de cambiar el volumen del dispositivo? He visto varias aplicaciones hacerlo.iOS: Cambiar el Volumen del Dispositivo

Tengo una versión de escritorio de la aplicación iOS y el dispositivo podrá controlarse en cierta medida a través de la red. Una de las cosas que quiero permitirle al usuario es cambiar el volumen del dispositivo y luego reproducir un sonido. Esto puede ayudar si pierde su iPhone en una grieta en su sofá de nuevo, pero no puede encontrarlo.

¿Hay alguna manera de que pueda hacer esto sin que Apple se enoje?

Respuesta

32

Usando iPodMusicPlayer afectaría también el ajuste real de volumen del iPod. Si se quiere evitar que, utilice esto:

#import <MediaPlayer/MediaPlayer.h> 
// ... 
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 
musicPlayer.volume = 1.0f; 

medida que el usuario holex correctamente la propiedad mencionada en volumeMPMusicPlayerController es deprecated in iOS 7.

+1

La solución anterior funcionó bien para mí. Gracias. – shatthi

+5

Recuerde agregar 'MediaPlayer.framework' a la fase de enlace de su destino, y' #import 'en su archivo fuente. –

+0

esto me ayuda. Muchas gracias. – Shivaay

14

No se puede cambiar el volumen del dispositivo mediante programación, sin embargo MPVolumeView (control de volumen) hay de cambiar el volumen del dispositivo, pero sólo a través de la interacción del usuario.

MPVolumeView es un control en la caja de herramientas, necesita agregar MediaPlayer.framework en su proyecto y luego MPVolumeView se mostrará en la caja de herramientas en el generador de interfaz.

Editar 1: MPVolumeView utiliza el volumen del dispositivo que también se utiliza para el volumen de llamada. AVAudioPlayer está ahí si desea un volumen de nivel de aplicación. En este caso, puede usar volumen propiedad para establecer el volumen de su aplicación (no el volumen del dispositivo) de forma programática. Sin embargo, puede utilizar UISlider control para obtener el aporte de volumen de usuario y configurar a su AVAudioPlayer

+0

También tenga en cuenta que solo está disponible en iOS 4.2, por lo que deberá incluir la verificación de disponibilidad de clase/versión antes de usarlo. –

+0

Nopes, una nueva propiedad añadida para que sea visible/oculta, la nueva propiedad solo está disponible en iOS 4.2, sin embargo, la he usado en iOS3.2, aquí la usé (iOS 3.2 o posterior), http: // itunes.apple.com/us/app/msiradio/id399408266?mt=8 –

+0

Hmm, eso es una especie de revés. ¿Sería capaz de reproducir un sonido a un volumen diferente al del timbre o volumen del sistema? He visto bastantes aplicaciones hacerlo ya. –

23

Se puede utilizar un pequeño truco:

MPMusicPlayerController* musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
    musicPlayer.volume = 1; // device volume will be changed to maximum value 
+0

Wow. Eso realmente funcionó. ¡Guay! – JohnK

+0

Utilice systemMusicPlayer en lugar de iPodMusicPlayer para IOS8 + – Kevin

+0

La propiedad 'volume' está en desuso a partir de iOS 7.0. Puede verificarlo [aquí] (https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex

Cuestiones relacionadas