我对整个 WebRTC 事情还很陌生,而且我一直在阅读大量文章以及有关如何处理视频录制的不同 API。似乎我读得越多,整个事情就越混乱。我知道我可以使用 Nimbb 之类的解决方案,但可以这么说,我宁愿将所有东西都保留在“内部”。我现在获得代码的方式,页面加载和用户单击按钮来确定输入类型(文本或视频)。单击视频按钮时,网络摄像头会初始化并打开以进行录制。但是,来自网络摄像头的流不会显示在页面本身中。这似乎是因为视频的 src 实际上是一个对象。奇怪的是,当我尝试通过登录到控制台来获取有关对象的更多信息时,我只得到一个名为 currentTime 的对象属性。该对象如何为视频元素创建实际来源?我已经尝试了下面代码的许多不同变体,但都无济于事,所以我只是想知道我做错了什么。
var playerId = 'cam-'+t+'-'+click[1]+'-'+click[2];
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
if(navigator.getUserMedia){
function onSuccess(stream){
var video = document.getElementById(playerId);
var vidSource;
if(window.webkitURL || window.URL){
vidSource = (window.webkitURL) ? window.webkitURL.createObjectURL(stream) : window.URL.createObjectURL(stream);
}else{
vidSource = stream;
}
video.autoplay = true;
video.src = vidSource;
}
function onError(e){
console.error('Error: ', e);
}
navigator.getUserMedia({video: true, audio: true}, onSuccess, onError);
}else{
//flash alternative
}