- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在开发一个带有 JavaScript
的 QRCode Reader
。如果用户在我的网站上,它会请求使用设备摄像头的权限。一旦用户接受它,它就会打开前摄像头。我正在使用带有最新 Chrome 版本的三星 Galaxy S4,目前运行良好。
我添加了一个下拉菜单,可以将前摄像头更改为后摄像头。一旦我更换相机,视频流就会停止,并且出现此错误。
Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.
我已经在旧版 Chrome 上进行了尝试,即使 camare 发生变化也能正常工作。
var videoElement = document.createElement("video");
var videoSelect = document.querySelector("select#videoSource");
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
function start() {
if (window.stream) {
videoElement.src = null;
window.stream.stop();
}
var videoSource = videoSelect.value;
var tw = 640 // 320 // 640 // 1280;
var th = 480 // 240 // 480 // 720
var hdConstraints = {
audio: false,
video: {
mandatory: {
maxWidth: tw,
maxHeight: th
},
optional: [{
sourceId: videoSource
}]
}
};
if (navigator.getUserMedia) {
navigator.getUserMedia(hdConstraints, success, errorCallback);
} else {
errorCallback("");
}
}
videoSelect.onchange = start;
start();
function gotSources(sourceInfos) {
for (var i = 0; i !== sourceInfos.length; ++i) {
var sourceInfo = sourceInfos[i];
var option = document.createElement("option");
option.value = sourceInfo.id;
if (sourceInfo.kind === "video") {
option.text = sourceInfo.label || "camera " + (videoSelect.length + 1);
videoSelect.appendChild(option);
} else {
console.log("Some other kind of source: ", sourceInfo);
}
}
}
if (typeof MediaStreamTrack === "undefined") {
alert("This browser does not support MediaStreamTrack.\n\nTry Chrome.");
} else {
MediaStreamTrack.getSources(gotSources);
}
function errorCallback(e) {
console.log("Cant access user media", e);
}
function success(stream) {
window.stream = stream;
videoElement.src = window.URL.createObjectURL(stream);
videoElement.onclick = function() { videoElement.play(); };
videoElement.play(); //Here is the Error
function getFrame() {
requestAnimationFrame(getFrame);
if (!videoElement.videoWidth) return;
if (!image) {
width = videoElement.videoWidth, height = videoElement.videoHeight;
log("videoElement", width, height, videoElement);
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
canvas.style.transform = "scale(1, 1)";
ctx = canvas.getContext("2d");
document.body.appendChild(canvas);
log("start");
image = Module._xsetup(width, height);
log("_xsetup", image, "pointer");
return;
}
ctx.drawImage(videoElement, 0, 0, width, height);
var imageData = ctx.getImageData(0,0, width, height);
data = imageData.data;
gofill();
}
getFrame();
}
最佳答案
这可能会有所帮助。
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
关于javascript - DOMException : play() can only be initiated by a user gesture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38791760/
我正在尝试使用 Google 的 Material 设计。 我在下面有一个组件,其路径是 epimss_design/lib/component/menu/main-menu-form.html; e
我在导航文档对象以删除特定节点时遇到 DOMException.HIERARCHY_REQUEST_ERR,在谷歌搜索此错误代码后,它说: “HIERARCHY_REQUEST_ERR:如果此节点的类
我已经使用 React JS 为 service worker 注册了 JS 文件。但是,当我尝试注册 periodic-background-sync 时出现错误。我需要在谷歌浏览器中进行任何设置吗
我在 Polymer 2 中有一个简单的 todo aap。它工作得很好,但是当我从 Polymer 目录添加元素时,我收到以下错误?还有纸张输入不能正常显示?检查屏幕截图。一切都很好我不知道为什么这
我一直在查询 websql 数据库表。在这里,插入和删除语句工作正常。 但是当我尝试执行 findAll 查询时,本质上是'select * from myTable',它返回一个带有 DOMExce
我刚刚动态创建了视频对象,然后在将视频对象附加到文档中之前添加了 2 个属性,例如 source 和 muted,最后使用方法 play() 播放添加的视频,如下所示。 let v = documen
在“我的应用程序”中,我想将节点从一个文档复制到另一个文档。 这是代码。 Element entryElement, operationElement; for (int i = 0; i < eve
我正在尝试通过替换其中的某些元素来使用 DOM 修改 XML 文档,但出现以下异常: 03-10 10:49:20.943: W/System.err(22584): org.w3c.dom.D
我正在使用 native-crypto 包,它是一个用于跨平台加密的 API(例如 web 和 node.js)。 let crypto = require("native-crypto"); 我已经
Chrome 会阻止自动播放音频/视频。我找到了自动播放视频的解决方案,但我的用例需要自动播放音频。这是我的代码: let audio = new Audio('music/test.mp3'); a
我正在尝试加载音频,但遇到了两个错误,但是一切都很好,并且来源是正确的。 错误: GET http:// localhost:4200 / src / assets / sound / welcome
每当我运行此代码时 var blob = new Blob(["ninja.mp3"], {type:"audio/mp3"}); var audio = new Audio(URL.createOb
我正在尝试使用 C3 在我的 React 项目中呈现图表。 问题 我所做的是动态生成一个 id (UUID) 并将其附加到我的图表组件中的 div。然后,在组件在 componentDidMount
您好,我在 Chrome 中播放音频时遇到异常。 这是我播放音频的功能 $(document).ready(function () { generateAlarm(); }); functio
我正在开发一个 WebAudio 应用程序,它需要 AudioWorklets 并且需要来自许多不同脚本的函数以用于 process() 函数。因此,我尝试使用 import 命令在 processo
我正在学习本教程,该教程教授 polymer 元件的安装: https://www.polymer-project.org/3.0/start/toolbox/add-elements 运行 npm
我有Video Player 。但是当我改变质量时它给出了这个错误 Uncaught (in promise) DOMException: The play() request was interru
我正在尝试将加密数据从服务器发送到客户端,并使用window.crypto.subtle.decrypt()对其进行解密。但我有一个没有描述的错误。我该如何修复它? node.js 服务器代码: co
我收到这个错误: Uncaught (in promise) DOMException: lockOrientation() is not available on this device. co
我正在使用 indexedDB(通过 npm 的 idb 包装器)来存储表示音频 channel 数据的 2D Float32 数组。它在一段时间内工作正常,但是,当其中一个数组的长度达到大约 166
我是一名优秀的程序员,十分优秀!