2011-02-01 23 views
23

C'è un modo per modificare il volume del dispositivo? Ho visto diverse app farlo.iOS: modifica volume dispositivo

Ho una versione desktop del app iOS e il dispositivo sarà in grado di essere controllato in una certa misura attraverso la rete. Una delle cose che voglio consentire all'utente di fare è cambiare il volume del dispositivo e quindi riprodurre un suono. Questo può aiutarti se perdi di nuovo il tuo iPhone in una crepa nel tuo divano, ma non riesci a trovarlo.

C'è un modo che si può fare questo senza di Apple arrabbiarsi?

risposta

32

Utilizzando iPodMusicPlayer influenzerebbe l'impostazione e volume reale iPod. Se si vuole evitare che, utilizzare questo:

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

Come utente holex correttamente citato la proprietà volume in MPMusicPlayerController è deprecated in iOS 7.

+1

La soluzione di cui sopra ha funzionato bene per me. Grazie. – shatthi

+5

Ricordarsi di aggiungere 'MediaPlayer.framework' alla fase di collegamento del target e' #import 'nel proprio file sorgente. –

+0

questo mi aiuta. Grazie mille. – Shivaay

14

Non è possibile modificare il volume del dispositivo in modo programmatico, tuttavia MPVolumeView (dispositivo di scorrimento del volume) consente di modificare il volume del dispositivo ma solo attraverso l'interazione dell'utente.

MPVolumeView è un controllo nella casella degli strumenti, è necessario aggiungere MediaPlayer.framework nel progetto quindi MPVolumeView verrà visualizzato nella casella degli strumenti nel builder dell'interfaccia.

Modifica 1: MPVolumeView utilizza il volume del dispositivo utilizzato anche per il volume della suoneria. AVAudioPlayer è disponibile se si desidera il volume a livello di applicazione. In questo caso è possibile utilizzare la proprietà volume per impostare il volume dell'applicazione (non il volume del dispositivo) in modo programmatico. Tuttavia, è possibile utilizzare UISlider controllo per ottenere l'input volume dal utente e impostare al vostro AVAudioPlayer

+0

Si noti inoltre che è disponibile solo in iOS 4.2, quindi dovrete includere disponibilità versione/classe di controllo prima di usarla. –

+0

Nopes, una nuova proprietà aggiunta per renderla visibile/nascosta, la nuova proprietà è disponibile solo in iOS 4.2, tuttavia l'ho utilizzata in iOS3.2, qui l'ho usata (iOS 3.2 o successive), http: // itunes.apple.com/us/app/msiradio/id399408266?mt=8 –

+0

Hmm, è una sorta di battuta d'arresto. Sarei in grado di riprodurre un suono con un volume diverso rispetto alla suoneria o al volume di sistema? Ho visto già alcune app farlo già. –

23

È possibile utilizzare un piccolo trucco:

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

Wow. In realtà ha funzionato. Freddo! – JohnK

+0

Utilizzare systemMusicPlayer anziché iPodMusicPlayer per IOS8 + – Kevin

+0

La proprietà 'volume' è deprecata a partire da iOS 7.0. È possibile verificare che [qui] (https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex

Problemi correlati