trtc.startLocalVideo() / trtc.startLocalAudio() 方法的 option.videoTrack/option.audioTrack 参数来指定。// 检测您当前的浏览器是否支持从 video 元素采集if (!HTMLVideoElement.prototype.captureStream) {console.log('your browser does not support capturing stream from video element');return}// 获取您页面在播放视频的 video 标签const video = document.getElementByID('your-video-element-ID');// 从播放的视频采集视频流const stream = video.captureStream();const audioTrack = stream.getAudioTracks()[0];const videoTrack = stream.getVideoTracks()[0];trtc.startLocalVideo({ option:{ videoTrack } });trtc.startLocalAudio({ option:{ audioTrack } });
// 检测您当前的浏览器是否支持从 canvas 元素采集if (!HTMLCanvasElement.prototype.captureStream) {console.log('your browser does not support capturing stream from canvas element');return}// 获取您的 canvas 标签const canvas = document.getElementByID('your-canvas-element-ID');// 从 canvas 采集 15 fps 的视频流const fps = 15;const stream = canvas.captureStream(fps);const videoTrack = stream.getVideoTracks()[0];trtc.startLocalVideo({ option:{ videoTrack } });
mute/unmute/ended 等事件来判断当前视频数据流的状态。await trtc.startLocalVideo();const videoTrack = trtc.getVideoTrack();// 使用自定义的播放器进行视频播放渲染const videoElement = document.getElementById('video-element');videoElement.srcObject = new MediaStream([videoTrack]);videoElement.play();
trtc.on(TRTC.EVENT.REMOTE_VIDEO_AVAILABLE, async ({ userId, streamType }) => {// 只拉流,不播放await trtc.startRemoteVideo({ userId, streamType })const videoTrack = trtc.getVideoTrack({ userId, streamType });// 使用自定义的播放器进行视频播放渲染const videoElement = document.getElementById('remote-video-element');videoElement.srcObject = new MediaStream([videoTrack]);videoElement.play();});
文档反馈