Come riprodurre l'audio attraverso l'altoparlante anche quando l'auricolare è collegato?

Il titolo della domanda potrebbe sembrare ripetuto, ma il mio problema è un problema a volte e provoca fastidi. Ho usato il codice riportto di seguito per giocare attraverso l'altoparlante quando l'auricolare è collegato.

AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE); audioManager.setMode(AudioManager.STREAM_MUSIC); audioManager.setSpeakerphoneOn(true); if(! Globals.mediaPlayer.isPlaying()){ Globals.mediaPlayer.start(); } 

Il codice precedente riproduce audio nei seguenti modi: 1. Poche volte, suona perfettamente. 2. La maggior parte dei tempi, gioca con un suono looping in background. 3. Pochi tempi, non gioca niente.

  • 2 righe in un elencoVisualizza l'elemento
  • android: controlla se il valore esiste nelle Preferenze condivise
  • Il file di YouTubePlayerFragment non può essere lanciato in android.support.v4.app.Fragment
  • Android AES 256-bit Crittografare i dati
  • Ricevitore di trasmissione Android vs servizio
  • Installare OpenGL ES e compilare il codice per android
  • Sembra che i suoni del sistema funzionino senza alcun errore quando l'auricolare è collegato. Ad esempio – impostare la suoneria suona correttamente la suoneria senza errori. Aiutaci a capire come posso suonare correttamente un suono tramite l'altoparlante con l'auricolare collegato.

  • Come analizzare un tipo di xml HTTPResponse in Android
  • Come get tutti i contatti dalla rubrica telefonica e SIM in Android?
  • Facebook autorizza di non lavorare all'interno di Android Asynctask o Thread
  • Come funziona il GCM? (google cloud messaging per Android)
  • Android: get NullPointerException per ImageView imag = (ImageView) findViewById (image image)
  • Android: Eccezione usando l'interface chiara con Socket
  • 2 Solutions collect form web for “Come riprodurre l'audio attraverso l'altoparlante anche quando l'auricolare è collegato?”

    Ho avuto un problema simile che ho risolto, creando un nuovo lettore multimediale se non sta suonando e impostando il tipo di stream del lettore multimediale nella stessa modalità del gestore audio, prova con qualcosa del genere:

     AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE); audioManager.setMode(AudioManager.STREAM_MUSIC); audioManager.setSpeakerphoneOn(true); if(! Globals.mediaPlayer.isPlaying()){ MediaPlayer mp = MediaPlayer.create(....); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.start(); } 

    Nel mio caso stavo usando AudioManager.MODE_IN_COMMUNICATION. Assicurarsi inoltre di impostare l'authorization

     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

    in AndroidManifest.xml

    Dopo aver lavorato su di esso un po '(forse più di quello), ho capito la soluzione per esso.

    Invece di modificare le impostazioni di AudioManager, dovremmo creare un'istanza MediaPlayer e impostare il tipo di stream audio per l'istanza. Possiamo impostarlo su STREAM_RING per indirizzare l'audio a cuffie e altoparlanti.

     player.reset(); player.setAudioStreamType(AudioManager.STREAM_RING); try { player.setDataSource(context, uri); player.prepareAsync();} 

    Quindi, è ansible ascoltare onPreparedListener per avviare l'audio. Controlli il blog Audio Route attraverso l'altoparlante in Android per get una migliore image.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.