javascript - 在 Safari 的视频对象中显示在 WebRTC 中录制的视频
问题描述
当使用 WebRTC 直接从用户网络摄像头录制视频时,您会得到一个带有视频的 BLOB 对象。
video.src = window.URL.createObjectURL(blob);
当尝试将 blob 应用到视频元素时(例如,使用上面的代码或其他替代方法,如 webkitURL 等......如此处所示https://stackoverflow.com/a/59934597/311188),它在 Safari 中失败。
它显示视频控件,但显示 0 秒,并且播放什么也不做。
有人创建了一个示例来实现这一点,但它使用文件(https://bl.ocks.org/unRob/3bd07a012597aa959c92)并且 Safari 中不允许使用文件
我一直在寻找如何在 Safari 中创建文件,但它不起作用。
如何将 blob 直接放在视频元素中,以便用户可以播放和预览他刚刚录制的内容?
解决方案
如果您使用的是 WebRTC,我假设您正在获取内容,如下所示:
const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true, video: true })
在这种情况下,您只需将该流附加到您的视频元素上:
video.srcObject = mediaStream
推荐阅读
- javascript - 如何保存图像并在 ReactJS 中下载?
- jenkins - 詹金斯无法在目录中找到 terraform 文件
- node.js - 用于注册的 Mocha 和 chai 测试不应插入 DB
- node.js - 如何在Node JS中将try catch块的错误自动发送到Sentry
- c# - 使用 C# 接口创建实现单例模式的管理器类,但子管理器类没有单例模式
- python - 与 Python subprocess.Popen 的 SSH 会话不显示 Bash 提示
- azure-logic-apps - 来自逻辑应用标准的 net tcp wcf 服务(本地)访问
- node.js - 在 Web (MERN) 应用程序中排队用户?
- java - 如何将两个通用队列组合在一起?
- react-native - 无法在未安装的组件上找到节点(react-sortable-hoc)