vez suenan salidas por parlantes los escuchar conectar como auriculares audífonos altavoz altavoces android android-audiomanager

android - suenan - dos salidas de audio a la vez windows 10



¿Cómo reproducir audio a través del altavoz incluso cuando el auricular está conectado? (2)

Después de trabajar un poco (quizás más que eso), descubrí la solución para ello.

En lugar de cambiar la configuración de AudioManager, deberíamos crear nuestra propia instancia de MediaPlayer y configurar el tipo de transmisión de audio para esa instancia. Podemos configurarlo en STREAM_RING para enrutar el audio a los auriculares y al altavoz.

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

Luego, puede escuchar en el Editor de preparación para iniciar el audio. Por favor revise el audio de la ruta del blog a través del altavoz en Android para obtener una mejor imagen.

El título de la pregunta puede parecer repetido, pero mi problema es a veces un problema y causa problemas técnicos. He usado el siguiente código para reproducir a través del altavoz cuando el auricular está conectado.

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

El código anterior reproduce el audio de las siguientes maneras: 1. Muy pocas veces, se reproduce perfectamente. 2. La mayoría de las veces, se reproduce con un sonido de bucle en el fondo. 3. Pocas veces, no juega nada.

Parece que los sonidos del sistema se reproducen sin error cuando se conectan los auriculares. Por ejemplo, la configuración del tono de llamada reproduce el tono de llamada correspondiente correctamente sin ningún problema. Ayúdame a comprender cómo puedo reproducir un sonido correctamente a través del altavoz con el auricular conectado.


Tuve un problema similar que resolví: crear un nuevo reproductor multimedia si no se está reproduciendo y configurar el tipo de transmisión del reproductor multimedia en el mismo modo del administrador de audio, intente con algo como esto:

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(); }

En mi caso, estaba usando AudioManager.MODE_IN_COMMUNICATION. También asegúrese de establecer el permiso

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

en el AndroidManifest.xml