我正在使用AudioTrack播放我通過UDP套接字收到的聲音。隨着聲音,我收到很多噪音,所以我決定使用AudioManager。但是AudioManager改變了超出應用程序界限的聲音路由。以下是我正在使用的代碼。使用AudioTrack與AudioManager setSpeakerphoneOn
m_amAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
這段代碼的問題是,當我關閉該應用程序並啓動音樂播放器,聲音來自前方揚聲器而不是ususal後置揚聲器,我不能以某種方式改變它。 要解決此問題,我決定在關閉我的應用程序時添加以下行。
m_amAudioManager.setSpeakerphoneOn(true);
但是這條線的問題是,當我接到一個呼叫(正常呼叫)時,默認情況下揚聲器已打開。我真的需要幫助。
非常感謝您的回覆。我已使用此權限。確實解決了我的一個問題。揚聲器默認不再使用。但是通過這段代碼,我嘗試運行音樂播放器,並開始在前置揚聲器上運行。任何想法如何將其更改爲默認? – SoH
默認值是設備用戶在啓動應用程序之前設置的默認值。重點是將AudioManager Setting恢復到您更改之前的狀態。因此,如果在應用程序啓動之前揚聲器電話已關閉,則當您的應用程序停止時,它將關閉。 – TouchBoarder
@hsigmond在AudioTrack啓動後改變模式可以嗎? – onmyway133