2015-09-28 103 views
1

我正在實施Quickblox WebRTC calling。全部都已成功實施,但我希望通過手機的耳機揚聲器進行音頻通話。默認情況下,它只在揚聲器上。 如何通過耳機揚聲器與其他任何呼叫應用程序啓用呼叫?我也試過這個:Quickblox使用耳機揚聲器的音頻通話Android

AudioManager m_amAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    m_amAudioManager.setMode(AudioManager.MODE_IN_CALL); 
    m_amAudioManager.setSpeakerphoneOn(false); 

但仍然沒有爲我工作!

回答

0

要切換音頻套接字,您需要調用switchAudioOutput();在當前版本 它的揚聲器和揚聲器電話之間切換方法

+0

謝謝你的回答!但switchAudioOutput();只有在耳機打開的情況下才爲我工作。我無法用這種方法接觸電話揚聲器,它仍在揚聲器上。 Intent.ACTION_HEADSET_PLUG意圖過濾器在廣播接收器中使用了相同的方法。所以當我插入耳機時,會切換音頻輸出。但是調用switchAudioOutput();默認情況下不適合我! –

+0

請檢查AndroidManifest.xml文件是否包含以下follofing權限:

+0

yes。我也包含了這個權限。但仍然沒有工作。 –

0

(如耳機,那麼它的耳機和揚聲器之間切換),如果使用的是QuickBlox SDK版本2.5.2,您可以設置AudioManager是這樣的:

audioManager = AppRTCAudioManager.create(this, new AppRTCAudioManager.OnAudioManagerStateListener() { 
     @Override 
     public void onAudioChangedState(AppRTCAudioManager.AudioDevice audioDevice) { 

     } 
    }); 

    audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE); 

    audioManager.setOnWiredHeadsetStateListener(new AppRTCAudioManager.OnWiredHeadsetStateListener() { 
     @Override 
     public void onWiredHeadsetStateChanged(boolean plugged, boolean hasMicrophone) { 

     } 
    }); 
    audioManager.init(); 
+0

謝謝,但我使用2.4。 –

相關問題