Twilio - 为屏幕共享视频添加属性
Twilio - Add attribute to screensharing video
我正在使用以下代码获取媒体并发布曲目:
const stream = await navigator.mediaDevices.getDisplayMedia();
let screenTrack = new Twilio.Video.LocalVideoTrack(stream.getTracks()[0]);
room.localParticipant.publishTrack(screenTrack);
screenTrack.once('stopped', () => {
room.localParticipant.unpublishTrack(screenTrack);
screenTrack.stop();
screenTrack = null;
});
这是我在添加曲目时使用的:
participant.on('trackAdded', track => {
let div = document.createElement("div");
let participantAttr = document.createAttribute("participant-sid");
participantAttr.value = `${participant.sid}`;
div.setAttributeNode(participantAttr);
document.getElementById('remote-media-div').appendChild(div);
div.appendChild(track.attach());
});
问题是添加 div(新曲目)后,它具有所有相同的属性,无论是屏幕还是网络摄像头视频,我无法在需要时区分两者使用 javascript.
对屏幕视频进行处理
如何为屏幕共享分配特殊属性(如 screen=true)div/video?
实现这个的方法有很多种,我用的是这样的
第 1 步:
像这样创建屏幕共享轨道
const $screenShareID = "screenshare";
let screenTrack new Twilio.Video.LocalVideoTrack(stream.getTracks()[0], { name: $screenShareID });
第 2 步: 将曲目附加到 DOM 时检查曲目类型和曲目 ID,即
if (track.kind === 'video') {
if (trackid === $screenShareID) {
//your code here to set the attributes for the Div
const domEle = track.attach();
domEle.setAttribute('id', trackid);
$media.append(domEle);//media here is the div element you can replace it with your own
}}
这不是完整的代码,只是我所做的示例。使用它我还能够设置属性和其他自定义功能。
我正在使用以下代码获取媒体并发布曲目:
const stream = await navigator.mediaDevices.getDisplayMedia();
let screenTrack = new Twilio.Video.LocalVideoTrack(stream.getTracks()[0]);
room.localParticipant.publishTrack(screenTrack);
screenTrack.once('stopped', () => {
room.localParticipant.unpublishTrack(screenTrack);
screenTrack.stop();
screenTrack = null;
});
这是我在添加曲目时使用的:
participant.on('trackAdded', track => {
let div = document.createElement("div");
let participantAttr = document.createAttribute("participant-sid");
participantAttr.value = `${participant.sid}`;
div.setAttributeNode(participantAttr);
document.getElementById('remote-media-div').appendChild(div);
div.appendChild(track.attach());
});
问题是添加 div(新曲目)后,它具有所有相同的属性,无论是屏幕还是网络摄像头视频,我无法在需要时区分两者使用 javascript.
对屏幕视频进行处理如何为屏幕共享分配特殊属性(如 screen=true)div/video?
实现这个的方法有很多种,我用的是这样的
第 1 步: 像这样创建屏幕共享轨道
const $screenShareID = "screenshare";
let screenTrack new Twilio.Video.LocalVideoTrack(stream.getTracks()[0], { name: $screenShareID });
第 2 步: 将曲目附加到 DOM 时检查曲目类型和曲目 ID,即
if (track.kind === 'video') {
if (trackid === $screenShareID) {
//your code here to set the attributes for the Div
const domEle = track.attach();
domEle.setAttribute('id', trackid);
$media.append(domEle);//media here is the div element you can replace it with your own
}}
这不是完整的代码,只是我所做的示例。使用它我还能够设置属性和其他自定义功能。