Sto utilizzando AudioTrack per riprodurre l'audio che ricevo tramite socket UDP. Ho un sacco di rumore insieme al suono, quindi ho deciso di usare AudioManager. Ma AudioManager cambia il routing del suono oltre i limiti dell'applicazione. Di seguito è riportato il codice che sto usando.Utilizzare AudioTrack con AudioManager setSpeakerphoneOn
m_amAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
Il problema con questo codice è che quando chiudo l'applicazione e iniziare un lettore musicale, il suono proviene dal diffusore anteriore e non l'altoparlante posteriore ususal e non posso cambiarlo in qualche modo. Per risolvere questo problema ho deciso di aggiungere la seguente riga quando chiudo la mia app.
m_amAudioManager.setSpeakerphoneOn(true);
Ma con questa linea il problema è che quando ricevo una chiamata (chiamata normale), per impostazione predefinita l'altoparlante è acceso. Ho davvero bisogno di aiuto su questo per favore.
Grazie mille per la risposta. Ho usato questa autorizzazione. E ha risolto uno dei miei problemi. L'altoparlante non è più attivo per impostazione predefinita. Ma con questo codice ho provato a eseguire il lettore musicale e ha iniziato a funzionare sul diffusore anteriore. Qualche idea su come cambiarlo di default? – SoH
Il valore predefinito è quello impostato dall'utente del Dispositivo prima che inizi l'app. Il punto è ripristinare l'impostazione AudioManager allo stato in cui si trovava prima di modificarlo. Pertanto, se speakerPhone è disattivato prima dell'avvio dell'app, si spegne quando l'app si arresta. – TouchBoarder
@hsigmond va bene se cambiamo modalità dopo l'avvio di AudioTrack? – onmyway133