const localStream = TRTC.createStream({ userId, audio: true, video: true });localStream.initialize().then(() => {// local stream initialized success});
const localStream = TRTC.createStream({ userId, audio: false, screen: true });localStream.initialize().then(() => {// local stream initialized success});
// 현재 브라우저가 video 요소에서 stream 캡처를 지원하는지 확인const isVideoCapturingSupported = () => {if (typeof document === 'undefined') {return false;}const videoElement = document.createElement('video');return ['captureStream', 'mozCaptureStream', 'webkitCaptureStream'].some(item => item in videoElement);};// 현재 브라우저가 video 요소에서 stream 캡처를 지원하는지 확인if (!isVideoCapturingSupported()) {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];const localStream = TRTC.createStream({ userId, audioSource: audioTrack, videoSource: videoTrack });// 영상 통화 경험을 보장하기 위해 비디오 속성은 외부 비디오 소스의 속성과 동일해야 함localStream.setVideoProfile('480p');localStream.initialize().then(() => {// local stream initialized success});
// 현재 브라우저가 canvas 요소에서 stream 캡처를 지원하는지 확인const isCanvasCapturingSupported = () => {if (typeof document === 'undefined') {return false;}const canvasElement = document.createElement('canvas');return ['captureStream', 'mozCaptureStream', 'webkitCaptureStream'].some(item => item in canvasElement);};// 현재 브라우저가 canvas 요소에서 stream 캡처를 지원하는지 확인if (!isCanvasCapturingSupported()) {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];const localStream = TRTC.createStream({ userId, videoSource: videoTrack });// 영상 통화 경험을 보장하기 위해 비디오 속성은 외부 비디오 소스의 속성과 동일해야 함localStream.setVideoProfile('480p');localStream.initialize().then(() => {// local stream initialized success});
mute/unmute/ended
등 기타 이벤트를 수신 대기해야 합니다.Client.on('stream-added')
, Client.on('stream-updated')
및 Client.on('stream-removed')
을 수신해야 합니다.
문제 해결에 도움이 되었나요?