我正在设置一个测试,包括启动网络摄像头视频会话。
到目前为止,一切正常,除了允许访问网络摄像头外,不需要任何用户交互。
当我使用的第三方库发出呼叫时: navigator.mediaDevices.getUserMedia({audio: true, video: true}) 浏览器会打开提示,要求用户允许访问。
navigator.mediaDevices.getUserMedia({audio: true, video: true})
我正在寻找一种无需用户交互即可授予访问权限的方法。
我试过木偶师的 page.on('dialog'... 但是,网络摄像头访问提示没有要求这样做。
page.on('dialog'...
如果你有什么想法,请告诉我?
Google Chrome有一个启动选项 --use-fake-ui-for-media-stream 允许用户跳过getUserMedia的提示。 你可以用下面的木偶师来设置它。
--use-fake-ui-for-media-stream
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() })()