我需要将用户显示媒体(屏幕截图(连接到webRTC应用程序。
以下代码用于启动屏幕捕获:
navigator.mediaDevices.getDisplayMedia({video: true})
这会提示用户有关屏幕捕获的信息,并创建可在授予权限后使用的视频流。但是,我无法让它在iOS或Android设备上运行。
我正在测试的iPad找不到navigator.mediaDevices.getDisplayMedia - undefined
(iOS 13.3(
Android上的Chrome(v79(在我尝试调用它时显示以下错误:
圆顶感知:无效状态
据此: 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和屏幕录制的演示,并在此网页上生成了相同的错误。这可能是由于我的硬件设备设置造成的吗?
getDisplayMedia(( 在 android 和 iOS 上不受支持。
根据链接,它目前在iOS或Android中不受支持,但在Safari 13的Macos上受支持。