标签: capturestream

在 iPhone/iOS 上的浏览​​器上录制视频 (MediaRecorder)

我正在尝试访问用户的网络摄像头/手机摄像头来录制视频并混合音频(想象一下 TikTok)。因此,用户按下录制按钮,音频就会播放(供用户为他们的舞蹈或其他内容计时),然后当音频结束时,录制停止,他们就可以下载它。

我可以在WindowsAndroid上使用MediaRecorderCaptureStream for Chrome很好地实现它,但 iOS 上没有浏览器支持 CaptureStream。即使 MediaRecorder 似乎也不起作用。

有谁知道一个解决方案(不涉及将视频流式传输到服务器并在那里混合并下载回来)在iOS上录制视频(它当然可以在视频元素上播放流)并将其与音频混合?

safari camera ios mediarecorder capturestream

5
推荐指数
1
解决办法
3295
查看次数

类型“HTMLVideoElement”上不存在属性“captureStream”

我正在制作一个简单的项目,在 React 中使用 WebRTC 和 typescript。

我正在关注MDN HTMLMediaElement.captureStream()

const vid: HTMLVideoElement | null = document.querySelector("video");
if (vid) {
   vid.captureStream();
}

.
.
.

<video id="myVid"></video>
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

Property 'captureStream' does not exist on type 'HTMLVideoElement'.ts(2339)
Run Code Online (Sandbox Code Playgroud)

我什至尝试过,

const vid: HTMLMediaElement | null = document.querySelector("video");
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么??

编辑

我试过

const videoCont = useRef<HTMLVideoElement>(null);

var URL = window.URL || window.webkitURL
const fileURL = URL.createObjectURL(e)
if (videoCont.current) {
         videoCont.current.src = fileURL;
         videoCont.current.play = async () => {
              const mediaStream = videoCont.current?.captureStream();
       }
   }
Run Code Online (Sandbox Code Playgroud)

还是同样的错误, …

html webrtc typescript reactjs capturestream

5
推荐指数
1
解决办法
2684
查看次数

动态创建的视频元素上的 captureStream()

我正在尝试从动态创建的视频元素捕获流。当我获取视频元素并尝试 videoElement.captureStream() 时,Firefox 返回videoElement.captureStream 不是一个函数,但相同的代码可以在 Chrome 上运行。问题似乎 Firefox 在动态创建视频元素方面存在问题。我尝试突变观察者来检测新添加的视频元素并访问 captureStream 方法,但没有运气我发布了下面的代码示例(我正在使用 adapter.js for WebRTC https://webrtc.github.io/adapter/adapter-latest .js )

(function (win) {

    var listeners = [],
        doc = win.document,
        MutationObserver = win.MutationObserver || win.WebKitMutationObserver,
        observer;

    function ready(selector, fn) {
        listeners.push({
        selector: selector,
        fn: fn
        });
        if (!observer) {
        observer = new MutationObserver(check);
        observer.observe(doc.documentElement, {
            childList: true,
            subtree: true
        });
        }
        check();
    }

    function check() {
        for (var i = 0, len = listeners.length, listener, elements; i < len; i++) { …
Run Code Online (Sandbox Code Playgroud)

javascript firefox html5-video webrtc capturestream

2
推荐指数
1
解决办法
3896
查看次数