我使用localhost本地訪問的時候可以使用錄屏功能(例如:localhost/target/index.html),但是我通過IP地址訪問的時候(例如:172.16.2.222/target/index.html)就會報錯:getDisplayMedia' of undefined。有人遇到過嗎
代碼在下面:
//開始錄制
function startCapture() {
return navigator.mediaDevices.getDisplayMedia(options).then(stream => {
tracks = stream.getTracks();
if (tracks[0].label.indexOf("screen") === -1) {
layer.confirm('您拒絕了錄屏請求,將退出登錄!', {
btn: ['知道了'] //按鈕
, cancel: function (index, layero) {
localStorage.clear();
sessionStorage.clear();
location.href = "login.html";
}
}, function (index) {
layer.close(index);
localStorage.clear();
sessionStorage.clear();
location.href = "login.html";
});
return
}
recordingScreen();//開始計時
// jtsb(); //監聽滑鼠動作
let mediaRecorder = new MediaRecorder(stream);
mediaRecorder.ondataavailable = function (blob) {
flagTime += 1;
var oReq = new XMLHttpRequest();
oReq.open("POST", huijuOptions.BasicsBaseUrl + '/capture/newFile', true);
var fd = new FormData();
fd.append("datas", blob.data);
fd.append("fileName", captureName);
oReq.send(fd);
};
mediaRecorder.start(1000)
}).catch(error => {
if (error.name === "NotAllowedError") {
layer.confirm('您未選擇全屏錄制,將退出登錄!', {
btn: ['知道了'] //按鈕
, cancel: function (index, layero) {
localStorage.clear();
sessionStorage.clear();
location.href = "login.html";
}
}, function (index) {
layer.close(index);
localStorage.clear();
sessionStorage.clear();
location.href = "login.html";
});
}
// console.error(error);
});
}
uj5u.com熱心網友回復:
補充 options
var options = {
audio: false,
aspectRatio: 1.6,
// deviceId: "screen:69733568:0",
frameRate: 20,
height: 450,
resizeMode: "crop-and-scale",
width: 720,
cursor: "always",
displaySurface: "monitor",
logicalSurface: false
}
uj5u.com熱心網友回復:
使用ip里面的mediaDevices物件都不存在uj5u.com熱心網友回復:
您表達的是什么意思,我沒太明白
uj5u.com熱心網友回復:
使用ip地址的時候navigator里面mediaDevices物件都不存在uj5u.com熱心網友回復:
謝謝,解決了。原因是navigator.mediaDevices僅支持localhost,https,file://這三種環境。http需要配置一下
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/59667.html
標籤:JavaScript
上一篇:host域名問題
