我们上一篇说到TSINGSEE青犀视频开发团队已经基本实现了WebRTC的视频推流和播放,还剩一些小问题需要我们优化。
我们使用VideoTrackInterfaceInterface类对WebRTC进行编译,在重写的该类时,程序编译崩溃报错:“初始化”:无法从“T *”转换为“T *”; “rtc::scoped_refptr::ptr_”:未能初始化成员。
我们双击该错误,定位到了该函数成员rtc::scoped_refptr,而rtc::scoped_refptr类是WebRTC的一个智能指针的方法,基本不可能出现该问题。
因此我们猜测是自身写的代码问题,在代码中CustomVideoTrackSource类和MyDesktopCapture类都重写了webrtc::VideoTrackInterfaceInterface。导致重写了二次方法,而rtc::scoped_refptr方法只要有一个重定义。
在删除其中一个MyDesktopCapture类和CustomVideoTrackSource类时,vs2017编译都会无问题。那么重写VideoTrackInterfaceInterface类时,就必须确保一个类重写,否则会导致该报错出现。
我们将会继续推动EasyCVR、EasyNVR、EasyGBS等平台对WebRTC的支持,如果大家有兴趣,欢迎联系我们了解或者关注我们。