2010-03-29 12 views
6

Per consentire all'utente di controllare il volume, la mia applicazione Android ha un menu costituito da un cursore che fornisce valori int da 0 a 10, quando trascinati. Dopo aver ottenuto un valore, devo impostare il volume sul valore corrispondente scelto dall'utente, e bene, questa è la parte che non so implementare e mi piacerebbe trovarla.Imposta il volume di un'applicazione Android

risposta

11

Utilizzare la classe AudioManager. In sostanza il codice è la seguente:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(streamType, volume, flags); 

Il problema è che il volume del dispositivo non è necessariamente mappato 0-10 come avete nel vostro dispositivo di scorrimento. Sul mio emulatore, va da 0 a 7. Quindi quello che devi fare è getStreamMaxVolume(...) per sapere qual è il tuo massimo e poi calcolare il tuo valore come una frazione di quello. Ad esempio, se l'utente sceglie il volume 8 su 10, è equivalente a 0.8 * 7 = 5.6, che va arrotondato a 6 su 7.

Lo "stream" si riferisce a cose come volume suoneria, volume di notifica , volume della musica, ecc. Se si desidera modificare il volume della suoneria, è necessario assicurarsi che tutti i comandi abbiano AudioManager.STREAM_RING come streamType.

Problemi correlati