手机网页视频抓取(Onlyareallowed()运行获取视频流代码)

优采云 发布时间: 2021-11-13 00:05

  手机网页视频抓取(Onlyareallowed()运行获取视频流代码)

  NotSupportedError 只允许安全来源(请参阅:)

  但是一开始并没有报这个错误。一开始我是跑代码直接获取视频流的。项目的代码好像停止运行了,对应位置的console.log没有输出,也没有报错。

  经过调试,把获取视频流的代码放在click事件中,报错了。.

  切换相机代码:

  // 多选框更改事件

videoSelect.onchange = getStream;

// 获取设备音频输出设备与摄像设备,这里我只用到了摄像设备

function gotDevices(deviceInfos) {

console.log('deviceInfos')

console.log('deviceInfos:', deviceInfos);

for (let i = 0; i !== deviceInfos.length; i++) {

let deviceInfo = deviceInfos[i];

var option = document.createElement('option');

// console.log(deviceInfo)

if (deviceInfo.kind === 'videoinput') { // audiooutput , videoinput

option.value = deviceInfo.deviceId;

option.text = deviceInfo.label || 'camera ' + (videoSelect.length + 1);

videoSelect.appendChild(option);

}

}

}

  兼容浏览器:

  

//访问用户媒体设备的兼容方法

function getUserMedia(constrains,success,error){

if(navigator.mediaDevices.getUserMedia){

//最新标准API

navigator.mediaDevices.getUserMedia(constrains).then(success).catch(error);

} else if (navigator.webkitGetUserMedia){

//webkit内核浏览器

navigator.webkitGetUserMedia(constrains).then(success).catch(error);

} else if (navigator.mozGetUserMedia){

//Firefox浏览器

navagator.mozGetUserMedia(constrains).then(success).catch(error);

} else if (navigator.getUserMedia){

//旧版API

navigator.getUserMedia(constrains).then(success).catch(error);

}

}

  获取视频流成功回调:

  

function getStream(){

if (window.stream) {

window.stream.getTracks().forEach(function(track) {

track.stop();

})

}

if (navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia){

//调用用户媒体设备,访问*敏*感*词*

const constraints = {

audio: true,

video: {

width: { ideal: 1280 },

height: { ideal: 720 },

frameRate: {

ideal: 10,

max: 15

},

deviceId: {exact: videoSelect.value}

}

};

console.log('获取视频流');

getUserMedia(constraints,success,error);

} else {

alert("你的浏览器不支持访问用户媒体设备");

}

}

  截取视频流为图片:

  

//注册拍照按钮的单击事件

document.getElementById("capture").addEventListener("click",function(){

//绘制画面

console.log('点击事件');

context.drawImage(video,0,0,480,320);

});

  源地址

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线