5

我需要将用户显示媒体(屏幕截图)连接到 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 和屏幕录制的演示,并且在此网页上生成了相同的错误。这可能是由于我的硬件设备设置造成的吗?

4

1 回答 1

3

android 和 iOS 不支持 getDisplayMedia()。

根据链接,它目前在 iOS 或 Android 中不受支持,但在 Safari 13 中的 Macos 上受支持。

于 2020-04-26T08:17:44.393 回答