Le mie app riproducono due audio, prima dal servizio e il secondo dall'attività. Voglio diminuire il volume del primo audio quando viene riprodotto il secondo audio. Dopo aver interrotto il secondo audio, il volume del primo audio dovrebbe aumentare.Come controllare il volume audio in riproduzione dal servizio?
risposta
MediaPlayer ha metodi per questo. Imposta il volume per il canale sinistro e destro. Unmuted:
mediaPlayerA.setVolume(1.0f, 1.0f);
mute l'altro giocatore
mediaPlayerB.setVolume(0.0f, 0.0f);
Semplice ma utile. Grazie ;.) – JanPl
Non sono sicuro di come è stato implementato il vostro MediaPlayer
in coincidenza con il servizio, ma nel mio prova, ho creato un'istanza di MediaPlayer
nel mio servizio classe. Al fine di controllare il volume dell'istanza MediaPlayer
della classe di servizio, al di fuori della sua classe di servizio, ho impostato l'istanza MediaPlayer
come membro statico.
Così nella mia classe di servizio ho fatto questo:
static MediaPlayer mediaPlayer = new MediaPlayer();
Nella mia attività (che ha il proprio di riprodurre file audio) ho fatto questo:
MyOwnService.mediaPlayer.setVolume(0.1f, 0.1f);
Così, quando ho saltato nella mia attività , Ho usato questa affermazione per prima, prima di riprodurre l'audio dell'attività. Notate che non ho disattivato l'audio (0.0f, 0.0f). Puoi giocare con i tuoi galleggianti fino a quando non si adatta alle tue esigenze. Varia tra 0.0f - 1.0f.
Nella mia attività, ho implementato anche lo MediaPlayer.OnCompletionListener
, in modo da sapere quando l'audio per l'attività è stato completato. Questa interfaccia ha un metodo per implementare, onCompletion(MediaPlayer mp)
. Questo metodo viene chiamato una volta che l'audio è completo.
Quindi, nella mia attività ho fatto anche questo:
@Override
public void onCompletion(MediaPlayer mp) {
MyOwnService.mediaPlayer.setVolume(1.0f, 1.0f);
}
Ecco, allora ho alzato il volume della musica servizio di back al massimo, dal momento che la riproduzione audio al suo interno di attività è ora completato.
Ancora, questo era tutto in prova, e non vorrei esporre un membro statico proprio così (in un'app pubblicata), vorrei incapsularlo un po 'come, quindi c'è un qualche tipo di controllo degli accessi.
Spero sia stato utile.
Quali apri si sta utilizzando per la riproduzione? – JohanShogun
Utilizzo di Android MediaPlayer e audio è nella mia cartella raw. –