Webrtc Native C++添加多个视频源,并实时切换
Posted 、、、、南山小雨、、、、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Webrtc Native C++添加多个视频源,并实时切换相关的知识,希望对你有一定的参考价值。
WebRTC的C++ API提供了一个rtc::VideoSourceInterface,它可以接收多个视频源,可以实时切换video0和video1。例如,可以使用以下步骤来实现:
-
创建一个rtc::VideoSourceInterface的实例。
-
使用AddOrUpdateSink()方法添加video0和video1视频源。
-
调用SwitchSource()方法来切换video0和video1之间的输入。
-
使用RemoveSink()方法移除不再使用的视频源。
//另一种方法
可以参考下面的代码:
// Create a MediaStreamTrack for the USB source.
rtc::scoped_refptrwebrtc::MediaStreamTrackInterface usb_track =
webrtc::CreateUsbMediaStreamTrack(usb_device);
// Add the MediaStreamTrack to the PeerConnection.
rtc::scoped_refptrwebrtc::RtpSenderInterface usb_sender =
peer_connection->AddTrack(usb_track);
// Switch to the USB source.
peer_connection->RemoveTrack(default_sender);
peer_connection->AddTrack(usb_sender);
//另一种方法
rtc::scoped_refptrwebrtc::VideoTrackSourceInterface new_video_source =
n
WebRTC Native M96 SDK接口封装--setDevice指定视频设备
生活继续
前一篇写了如果枚举视频设备,这里就谈一谈如何设置设备。
在实际使用过程中,有的设备有多个视频采集设备,这个时候,用户可以自己选择自己需要使用哪个一个摄像头。
这样,就需要先枚举设备,给用户一个设备列表,然后用户选择一个设备,通过接口设置到WebRTC中。
奇怪:
这里需要注意一下,声网的接口叫setDevice,而不是setVideoDevice。
接口定义(Agora)
接口名:
setDevice
接口定义:
virtual int agora::rtc::IVideoDeviceManager::setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])
接口功能:
指定视频设备。
参数:
成员变量 | 说明 |
---|---|
deviceI |
以上是关于Webrtc Native C++添加多个视频源,并实时切换的主要内容,如果未能解决你的问题,请参考以下文章
WebRTC Native M96 SDK接口封装--setDevice指定视频设备
WebRTC Native M96 SDK接口封装--setDevice指定视频设备
WebRtc Native M96 远端视频接收之PacketBuffer-组帧原理分析