WebRTC原始碼級深度解析,進階大廠高階音視訊開發者
阿新 • • 發佈:2021-10-31
PeerConnectionFactory/PeerConnection:整個WebRTC中最核心的類,有了這個類才能獲得音視訊相關的其他操作。
PeerConnectionFactory類中包含了各種音視訊資料的初始化。
PeerConnectionFactory.initializeAndroidGlobals 中初始化了是否初始化音視訊,是否硬體加速,是否支援硬體渲染等內容。
PeerConnectionFactory簡化的類圖如下:
獲取媒體流
第一步:獲取視訊源videoSource
String frontCameraName = VideoCapturerAndroid.getNameOfFrontFacingDevice(); VideoCapturer videoCapturer= VideoCapturerAndroid.create(frontCameraName); VideoSource videoSource = factory.createVideoSource(videoCapturer,videoConstraints);
其中videoConstraints是對視訊流的一些限制,按如下方法建立。
MediaConstraints videoConstraints = new MediaConstraints(); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxHeight", Integer.toString(pcParams.videoHeight))); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxWidth", Integer.toString(pcParams.videoWidth))); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("maxFrameRate", Integer.toString(pcParams.videoFps))); videoConstraints.mandatory.add(new MediaConstraints.KeyValuePair("minFrameRate", Integer.toString(pcParams.videoFps)));
第二步:獲取音訊源audioSource
音訊源的獲取簡單許多:
AudioSource audioSource = factory.createAudioSource(new MediaConstraints());
Download:WebRTC原始碼級深度解析,進階大廠高階音視訊開發者