首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的Twilio-Video-Call应用中实现“屏幕录制”?

如何在我的Twilio-Video-Call应用中实现“屏幕录制”?
EN

Stack Overflow用户
提问于 2020-10-21 19:07:30
回答 1查看 210关注 0票数 0

我在前端使用React,在后端使用NodeJS,我遵循下面提到的回购在我的应用程序中实现视频通话和屏幕共享。

https://github.com/ksocha/twilio-screensharing

这是用于屏幕共享的文档,但没有示例可用。https://www.twilio.com/docs/video/api/rooms-resource#room-instance-resource

我被卡住了,不知道从哪里开始。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-09 15:40:40

我尝试使用Twilio提供的屏幕录制功能,但发现组合API很难使用。

这是我添加到我的视频应用程序以实现屏幕录制的代码片段。

代码语言:javascript
复制
    async function StartRecording() {
        try {
            stream = await navigator.mediaDevices.getDisplayMedia({
                video: { mediaSource: "screen" },
            });
            recorder = new MediaRecorder(stream);
            const chunks = [];
            recorder.ondataavailable = (e) => chunks.push(e.data);

            recorder.onstop = (e) => {
                setIsRecord(false);
                const completeBlob = new Blob(chunks, { type: chunks[0].type });
                const fileReader = new FileReader();

                fileReader.onload = function (e) {
                    let anchor = document.createElement("a");
                    anchor.href = e.target.result;
                    anchor.download = `video-${new Date()}`;
                    anchor.click();
                };

                fileReader.readAsDataURL(completeBlob);
            };
            recorder.start();
        } catch (err) {
            console.log(err);
            setIsRecord(false);
        }
    }

    function StopRecording() {
        recorder.stop();
        stream.getVideoTracks()[0].stop();
    }
代码语言:javascript
复制
<span onClick={() => setIsRecord(!isRecord)}>
    {!isRecord ? (<div onClick={StartRecording} className='record-on'>
                                    <FiberManualRecordIcon
                                        fontSize='large'
                                        className='videoActionOn'
                                    />
                                    <p>Start Record</p>
                                </div>
                            ) : (
                        <div onClick={StopRecording} className='record-off'>
                                    <HighlightOffIcon
                                        fontSize='large'
                                        className='videoActionOn'
                                    />
                                    <p>Stop Record</p>
                                </div>
                            )}
                </span>

请随时留下评论,这样我就可以改进这个答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64462232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档