Nella mia app sto provando a creare un pulsante che, quando viene premuto, interrompe tutte le altre app che riproducono musica. Quello che voglio è simile a quello che sto suonando attraverso un lettore musicale e se provo a suonare qualche altra musica attraverso un secondo lettore musicale, il lettore musicale corrente si ferma e poi inizia il secondo. Come possiamo impedire ad altre app di riprodurre musica dall'attività/app corrente?Come interrompere altre app che riproducono musica dalla mia attività corrente?
14
A
risposta
33
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so u can do u stuff now .
}
attenzione audio è assegnato a turno ogni applicazione che richieda. Ciò significa che se un'altra applicazione richiede il focus audio, l'applicazione la perderà. Sarete ed notifi della perdita di attenzione audio attraverso il gestore onAudioFocusChange del Audio fuoco Change Listener si registrato al momento della richiesta la messa a fuoco audio
private OnAudioFocusChangeListener focusChangeListener =
new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (focusChange) {
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) :
// Lower the volume while ducking.
mediaPlayer.setVolume(0.2f, 0.2f);
break;
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) :
pause();
break;
case (AudioManager.AUDIOFOCUS_LOSS) :
stop();
ComponentName component =new ComponentName(AudioPlayerActivity.this,MediaControlReceiver.class);
am.unregisterMediaButtonEventReceiver(component);
break;
case (AudioManager.AUDIOFOCUS_GAIN) :
// Return the volume to normal and resume if paused.
mediaPlayer.setVolume(1f, 1f);
mediaPlayer.start();
break;
default: break;
}
}
};
3
È necessario utilizzare i lettori multimediali implementazioni di messa a fuoco audio trovati nella documentazione qui:
http://developer.android.com/guide/topics/media/mediaplayer.html#audiofocus
Problemi correlati
- 1. Come richiamare altre attività dalla mia attività personalizzata * prima * viene eseguito il mio codice attività?
- 2. android: come posso aprire un'altra app dalla mia app?
- 3. Posso interrompere Android dall'uccidere la mia app?
- 4. Che cos'è TombstonedTaskError dalla coda attività di App Engine?
- 5. Apri l'app Gmail dalla mia app
- 6. Rimuovi Watchkit Glance dalla mia app
- 7. Avvio dell'applicazione esterna dalla mia app
- 8. Posso disabilitare systemui dalla mia app Android?
- 9. Come impostare la suoneria in Android dalla mia attività?
- 10. Attività gradle per chiamare altre attività nell'ordine
- 11. Come ottenere i registri di altre app?
- 12. Come far sì che la mia app venga trasmessa quando vengono installate o rimosse altre applicazioni
- 13. Xcode continua a sospendere la mia musica
- 14. Escludere l'attività corrente da Attività recenti
- 15. Perché ho un arresto anomalo all'uscita dalla mia attività?
- 16. Come posso rimuovere crashlytics dalla mia app iOS?
- 17. Come rendere le azioni WebAPI accessibili solo dalla mia app?
- 18. come nascondere foto dalla galleria e memorizzarlo nella mia app
- 19. Come eseguire un Groovy Script dalla mia app Grails?
- 20. Come condividere il testo su WhatsApp dalla mia app?
- 21. Come usare whatsapp dalla mia app per Android?
- 22. Come interrompere il servizio da un'altra attività in Android?
- 23. Android - Più appWidgets che riproducono suoni diversi
- 24. Come posso ottenere dati in tempo reale dalla mia app di App Engine di produzione alla mia app dev locale?
- 25. Come esportare un'attività in modo che altre app possano chiamarla?
- 26. Come verificare se la mia attività è l'attività corrente in esecuzione sullo schermo
- 27. Come posso interrompere l'offerta di Google Toolbar per tradurre la mia app?
- 28. Come aggiungere un ingresso audio a una AVCaptureSession e consentire ad altre app di riprodurre musica in sottofondo
- 29. Come impedire ad altre app Android di accedere alle mie attività
- 30. Registrare tutti i suoni generati dalla mia app in un file audio (non dal microfono)
risposta Molto bella e dettagliata. –
qual è la classe MediaControlReceiver.class qui? –