我正在设置一个涉及启动网络摄像头视频 session 的测试。
到目前为止,一切都工作正常,除了授予对网络摄像头的访问权限之外,不需要任何用户交互。
当我正在使用的第三方库发出调用时:navigator.mediaDevices.getUserMedia({audio: true, video: true})
浏览器将打开提示,要求用户允许访问。
我正在寻找的是一种无需用户干预即可授予访问权限的方法。
我已经尝试了puppeteer的page.on('dialog'...
,但是网络摄像头访问提示没有被调用。
如果您有任何想法,请告诉我。
最佳答案
Google Chrome浏览器有一个启动选项--use-fake-ui-for-media-stream
,允许用户跳过getUserMedia的提示。
您可以按如下所示使用puppeteer进行设置。
const puppeteer = require('puppeteer')
;(async () => {
const browser = await puppeteer.launch({
args: [ '--use-fake-ui-for-media-stream' ]
})
const page = await browser.newPage()
await page.goto('http://localhost/start-video-test.html')
const startVideoButton = await page.$('#startVideoButton')
startVideoButton.click()
// video session starts without prompt
return browser.close()
})()
关于node.js - 使用Puppeteer for Node.js自动允许网络摄像头访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48264537/