webrtc 默认情况下,采集的视频和音频,大部分采集的是麦克风和摄像头的内容,
但有的时候,需要采集屏幕的内容和扬声器的声音,并将其发送出去。
关于屏幕的采集不做陈述,github上的例子很多,本文主要讲解如何采集扬声器的声音。
对于Android系统来说,如果你要进行录制扬声器的声音,是需要系统权限的。
所以,如果你没有系统权限的话,(也就是system用户),那本文是无法实现的。
具体实现步骤:
1.
在 AndroidManifest.xml 中
android:sharedUserId="android.uid.system" //用户权限
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
2.
在创建peerconnection的时候,需要添加setAudioDeviceModule(admbuilder.createAudioDeviceDodule());
admbuilder 默认情况下使用麦克风的声音,所以我们把麦克风的声音修改掉:
admbuilder.setAudioSource( MediaRecorder.AudioSource.REMOTE_SUBMIX);
这里的扬声器就是MediaRecorder.AudioSource.REMOTE_SUBMIX。