我需要将用户显示媒体(屏幕截图)连接到 webRTC 应用程序。
以下代码用于启动屏幕捕获:
navigator.mediaDevices.getDisplayMedia({video: true})
这会提示用户有关屏幕截图的信息,并创建一个视频流,一旦获得许可,就可以使用该视频流。但是我无法让它在 iOS 或 Android 设备上运行。
我正在测试它的 iPad 无法找到navigator.mediaDevices.getDisplayMedia - undefined
(iOS 13.3)
当我尝试调用它时,Android 上的 Chrome (v79) 显示以下错误:
DOMException:无效状态
根据这个:https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia 如果代码不是由用户操作启动的,则可能会生成错误,但这应该不是问题就我而言,因为代码是这样调用的:
startScreenSharing = event => {
navigator.mediaDevices.getDisplayMedia({video: true})
}
<Button onClick={this.startScreenSharing} />
事件变量包含一个有效事件,但我仍然收到“无效状态”错误。
这一定是我缺少的东西,因为它在桌面 Chrome 和 Safari 上运行良好。
编辑
我遇到了这个:getDisplayMedia 和屏幕录制的演示,并且在此网页上生成了相同的错误。这可能是由于我的硬件设备设置造成的吗?