webrtc 默認(rèn)情況下,采集的視頻和音頻,大部分采集的是麥克風(fēng)和攝像頭的內(nèi)容,
但有的時候,需要采集屏幕的內(nèi)容和揚聲器的聲音,并將其發(fā)送出去。
關(guān)于屏幕的采集不做陳述,github上的例子很多,本文主要講解如何采集揚聲器的聲音。
對于Android系統(tǒng)來說,如果你要進(jìn)行錄制揚聲器的聲音,是需要系統(tǒng)權(quán)限的。
所以,如果你沒有系統(tǒng)權(quán)限的話,(也就是system用戶),那本文是無法實現(xiàn)的。
具體實現(xiàn)步驟:
1.
在 AndroidManifest.xml 中
android:sharedUserId="android.uid.system" //用戶權(quán)限
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
2.

在創(chuàng)建peerconnection的時候,需要添加setAudioDeviceModule(admbuilder.createAudioDeviceDodule());
admbuilder 默認(rèn)情況下使用麥克風(fēng)的聲音,所以我們把麥克風(fēng)的聲音修改掉:
admbuilder.setAudioSource( MediaRecorder.AudioSource.REMOTE_SUBMIX);
這里的揚聲器就是MediaRecorder.AudioSource.REMOTE_SUBMIX。