tencent cloud

피드백

API 개요

마지막 업데이트 시간:2022-11-11 11:59:03

    지원 플랫폼

    TRTC Web SDK는 WebRTC를 기반으로 구현되었으며 현재 데스크톱 및 모바일에서 주요 브라우저를 지원합니다. 자세한 내용은 아래 테이블을 참고하십시오.
    귀하의 시나리오가 지원되는 테이블에 없는 경우 TRTC Web SDK 기능 테스트 페이지에서 현재 환경이 WebView 환경 등 WebRTC의 모든 기능을 지원하는지 확인할 수 있습니다.

    운영 체제 브라우저 유형 브라우저 최저
    버전 요구사항
    SDK 버전 요구사항 수신(재생) 발송(마이크) 화면 공유
    Windows Chrome 브라우저(데스크톱) 56+ - 지원 지원 Chrome72+ 버전 지원
    QQ 브라우저(데스크톱, WebKit 코어) 10.4+ - 지원 지원 미지원
    Firefox 브라우저(데스크톱) 56+ v4.7.0+ 지원 지원 Firefox66+ 버전 지원
    Edge 브라우저(데스크톱) 80+ v4.7.0+ 지원 지원 지원
    Sogou 브라우저(데스크톱, 고속 모드) 11+ v4.7.0+ 지원 지원 지원
    Sogou 브라우저(데스크톱, 호환 모드) - - 미지원 미지원 미지원
    Opera 브라우저(데스크톱) 46+ v4.7.0+ 지원 지원 Opera60+ 버전 지원
    360 Total Security 브라우저(데스크톱, 고속 모드) 13+ v4.7.0+ 지원 지원 지원
    360 Total Security 브라우저(호환 모드) - - 미지원 미지원 미지원
    WeChat 내장 브라우저(데스크톱) - - 지원 미지원 미지원
    WeChat 내장 브라우저(데스크톱) - - 지원 미지원 미지원
    Mac OS Safari 브라우저(데스크톱) 11+ - 지원 지원 Safari13+ 버전 지원
    Chrome 브라우저(데스크톱) 56+ - 지원 지원 Chrome72+ 버전 지원
    Firefox 브라우저(데스크톱) 56+ v4.7.0+ 지원 지원 Firefox66+ 버전 지원(주의[3])
    Edge 브라우저(데스크톱) 80+ v4.7.0+ 지원 지원 지원
    Opera 브라우저(데스크톱) 46+ v4.7.0+ 지원 지원 Opera60+ 버전 지원
    WeChat 내장 브라우저(데스크톱) - - 지원 미지원 미지원
    WeChat 내장 브라우저(데스크톱) - - 지원 미지원 미지원
    Android WeChat 내장 브라우저(TBS 코어) - - 지원 지원 미지원
    WeChat 내장 브라우저(XWEB 코어) - - 지원 지원 미지원
    WeCom 내장 브라우저 - - 지원 지원 미지원
    Chrome 브라우저(모바일) - - 지원 지원 미지원
    QQ 브라우저(모바일) - - 미지원 미지원 미지원
    UC 브라우저(모바일) - - 미지원 미지원 미지원
    iOS 12.1.4+ WeChat 내장 브라우저 - - 지원 미지원 미지원
    iOS 14.3+ WeChat 내장 브라우저 6.5+ (WeChat 버전) - 지원 지원 미지원
    iOS WeCom 내장 브라우저 - - 지원 미지원 미지원
    iOS 11.1.2+ 모바일 Safari 브라우저 11+ - 지원 지원 미지원
    iOS 12.1.4+ Chrome 브라우저(모바일) - - 지원 미지원 미지원
    iOS 14.3+ Chrome 브라우저(모바일) - - 지원 지원 미지원
    주의:

    • H.264 버전 권한 제한으로 인해, Huawei Chrome 88 이하 버전은 H264 코덱을 사용할 수 없습니다(즉, 스트림 푸시 불가). Huawei 기기의 Chrome 브라우저에서 TRTC Web SDK를 사용하여 스트림을 푸시하려면 티켓 제출을 통해 VP8 코덱 활성화를 신청하십시오.
    • Mac OS에서 Firefox의 화면 공유 효과가 상대적으로 낮고 아직 해결책이 없는 상황이므로 Chrome 또는 Safari를 통한 화면 공유를 권장합니다.
    • Web 스트리밍 시 듀얼 사운드 채널 인코딩 지원을 원하시면 티켓 제출을 통해 WebRTC 듀얼 사운드 채널 인코딩을 신청하십시오.
    • 더 나은 제품 안정성과 온라인 지원을 위해 TRTC Web SDK를 최신 버전으로 업데이트할 것을 권장합니다. 버전 업데이트에 대한 주의 사항은 업데이트 가이드를 참고하십시오.

    URL 도메인 프로토콜 제한

    브라우저 보안 정책의 제한으로 인해 WebRTC 기능을 사용하려면 페이지의 액세스 프로토콜에 대한 엄격한 요구 사항이 있으므로 다음 테이블을 참고하여 애플리케이션을 개발하고 배포하십시오.

    응용 시나리오 프로토콜 수신(재생) 발송(마이크 켜짐) 화면 공유 비고
    프로덕션 환경 HTTPS 프로토콜 지원 지원 지원 권장
    프로덕션 환경 HTTP 프로토콜 지원 미지원 미지원
    로컬 개발 환경 http://localhost 지원 지원 지원 권장
    로컬 개발 환경 http://127.0.0.1 지원 지원 지원
    로컬 개발 환경 http://[로컬 IP] 지원 미지원 미지원
    로컬 개발 환경 file:/// 지원 지원 지원

    API 사용 가이드

    더 자세한 초기화 절차 및 API 사용 소개는 다음 튜토리얼을 참고하십시오.

    기능 Sample Code 튜토리얼
    기본 음성/영상 통화 튜토리얼 링크
    인터랙티브 라이브 스트리밍 마이크 연결 구현 튜토리얼 링크
    카메라/마이크 전환 튜토리얼 링크
    로컬 비디오 속성 설정 튜토리얼 링크
    로컬 오디오/비디오 동적 활성화/비활성화 튜토리얼 링크
    화면 공유 튜토리얼 링크
    볼륨 감지 튜토리얼 링크
    사용자 정의 수집 및 사용자 정의 재생 렌더링 튜토리얼 링크
    방의 업스트림 사용 인원 제한 튜토리얼 링크
    배경 음악/음향 효과 구현 튜토리얼 링크
    통화 전 환경 및 디바이스 점검 튜토리얼 링크
    통화 전 네트워크 품질 점검 튜토리얼 링크
    장치 연결/해제 동작 감지 튜토리얼 링크
    CDN에 푸시 스트림 구현 -
    듀얼 스트림 활성화 튜토리얼 링크
    뷰티 필터 활성화 튜토리얼 링크
    워터마크 활성화 튜토리얼 링크
    크로스 룸 연결 구현 튜토리얼 링크
    클라우드 혼합 스트림 구현 튜토리얼 링크
    클라우드 녹화 구현 튜토리얼 링크
    설명:

    • 클릭하여 더 많은 기능을 확인하십시오.
    • FAQ는 Web 관련을 참고하십시오.

    API 소개

    TRTC

    주의:

    본문은 4.x.x 버전의 TRTC Web SDK에 적용됩니다.

    TRTC는 TRTC Web SDK의 메인 엔트리입니다. TRTC 메소드를 통해 실시간 멀티미디어 통신을 위한 클라이언트 객체(Client) 및 로컬 오디오/비디오 스트림 객체(Stream)를 생성하고, 브라우저 호환성 및 화면 공유 지원 여부를 확인하고, 로그 레벨과 로그 업로드를 설정할 수 있습니다.

    API 설명
    VERSION TRTC Web SDK 버전 넘버.
    checkSystemRequirements 브라우저의 TRTC Web SDK 호환 여부 확인. 호환되지 않는 경우 사용자에게 최신 버전의 Chrome 브라우저 다운로드를 권고하시기 바랍니다.
    isScreenShareSupported 브라우저의 화면 공유 지원 여부 확인. 화면 공유 스트림을 생성하기 전에 이 메소드를 호출해 현재 브라우저의 화면 공유 지원 여부를 확인하십시오.
    isSmallStreamSupported 브라우저가 듀얼 스트림 모드 지원 여부 확인. 듀얼 스트림 모드를 활성화하기 전에 이 API를 호출하십시오.
    getDevices 미디어 입/출력 장치 목록 반환.
    getCameras 카메라 장치 목록 반환.
    getMicrophones 마이크 장치 목록 반환.
    getSpeakers 스피커 장치 목록 반환.
    createClient 실시간 음성/영상 통화를 위한 클라이언트 객체를 생성하여 방 출입, 오디오 및 비디오 스트림 배포 및 구독과 같은 기능 구현.
    createStream 로컬 스트림 Stream 객체 생성. 로컬 스트림 Stream 객체는 publish() 메소드를 사용하여 로컬 오디오/비디오 스트림을 게시합니다.

    TRTC.Logger

    로그 출력 레벨, 로그 업로드 활성화/비활성화 등 로그 설정 메소드를 제공합니다.

    API 설명
    setLogLevel 로그 출력 레벨 설정.
    enableUploadLog 로그 업로드 활성화.
    disableUploadLog 로그 업로드 비활성화.

    Client

    음성/영상 통화 클라이언트 객체 Client는 createClient()를 통해 생성되며, 음성/영상 통화를 나타냅니다.

    API 설명
    setProxyServer 프록시 서버 설정. 이 메소드는 기업이 nginx+coturn 같은 프록시 서버를 직접 배포하는 경우에 적합합니다.
    setTurnServer TURN 서버 설정. 이 메소드는 setProxyServer()와 함께 사용되며, 기업이 프록시 및 TURN 서버를 직접 배포하는 경우에 적합합니다.
    join 음성/영상 통화를 시작하는 방에 입장. 방이 없으면 시스템에서 방을 자동 생성합니다.
    leave 음성/영상 통화 방 퇴장 및 음성/영상 통화 종료.
    publish 로컬 오디오/비디오 스트림 게시. 이 메소드는 join() 메소드를 사용하여 방에 입장한 후에만 호출할 수 있으며, 하나의 음성/영상 통화는 하나의 로컬 스트림만 게시할 수 있습니다.
    unpublish 로컬 스트림 게시 취소.
    subscribe 원격 스트림 구독.
    unsubscribe 원격 스트림 구독 취소.
    switchRole 사용자 역할 전환. 이 메소드는 ‘live’ 인터랙티브 라이브 스트리밍 모드에서만 작동합니다.
    sendSEIMessage SEI 메세지 발송.
    on 클라이언트 객체 이벤트 수신.
    off 클라이언트 객체 이벤트 수신 취소.
    getRemoteMutedState 방에 있는 원격 사용자의 오디오/비디오 mute 상태 목록 가져오기.
    getTransportStats 현재 네트워크 전송 상태 통계 데이터 테이블 가져오기.
    getLocalAudioStats 게시된 로컬 스트림의 오디오 통계 데이터 가져오기. 이 메소드는 publish() 호출 후에만 사용 가능합니다.
    getLocalVideoStats 게시된 로컬 스트림의 비디오 통계 데이터 가져오기. 이 메소드는 publish() 호출 후에만 사용 가능합니다.
    getRemoteAudioStats 모든 원격 스트림의 오디오 통계 데이터 가져오기.
    getRemoteVideoStats 모든 원격 스트림의 비디오 통계 데이터 가져오기.
    startPublishCDNStream 현재 클라이언트의 오디오 및 비디오 스트림 CDN에 배포 시작.
    stopPublishCDNStream 현재 클라이언트의 오디오 및 비디오 스트림 CDN에 배포 중지.
    startMixTranscode 믹스 트랜스코딩 시작. 방 입장 및 스트림 푸시 후 이 인터페이스를 호출하십시오.
    stopMixTranscode 믹스 트랜스코딩 중지. 로컬 스트림을 성공적으로 게시(publish)하고 믹스 트랜스코딩 startMixTranscode를 시작한 후 이 인터페이스를 호출하십시오.
    enableAudioVolumeEvaluation 볼륨 크기 콜백 ​​활성화 또는 비활성화.
    enableSmallStream 푸시 스트림측 듀얼 스트림 모드 활성화.
    disableSmallStream 푸시 스트림측 듀얼 스트림 모드 비활성화.
    setSmallStreamProfile 작은 스트림 매개변수 설정.
    setRemoteVideoStreamType 시청측의 스트림 크기 속성 전환. 원격으로 작은 스트림을 활성화한 후에만 전환할 수 있습니다.

    LocalStream

    LocalStream 로컬 오디오/비디오 스트림은 createStream을 통해 생성되며, Stream의 하위 클래스입니다.

    API 설명
    initialize 로컬 오디오/비디오 스트림 객체 초기화.
    setAudioProfile 오디오 Profile 설정. 이 메소드는 initialize()가 호출되기 이전에만 사용할 수 있습니다.
    setVideoProfile 비디오 Profile 설정. 이 메소드는 initialize()가 호출되기 이전에만 사용할 수 있습니다.
    setScreenProfile 화면 공유 Profile 설정. 이 메소드는 initialize()가 호출되기 이전에만 사용할 수 있습니다.
    setVideoContentHint 비디오 콘텐츠 힌트 설정. 주로 다양한 시나리오에서 비디오 인코딩 품질을 개선하기 위해 사용됩니다. 이 메소드는 initialize()가 호출된 이후에만 사용할 수 있습니다.
    switchDevice 미디어 입력 장치 전환.
    addTrack 오디오/비디오 트랙 추가.
    removeTrack 비디오 트랙 제거.
    replaceTrack 오디오/비디오 트랙 교체.
    play 오디오/비디오 스트림 재생.
    stop 오디오/비디오 스트림 재생 중지.
    resume 오디오/비디오 재생 재개.
    close 오디오/비디오 스트림 비활성화.
    muteAudio 오디오 트랙 비활성화.
    muteVideo 비디오 트랙 비활성화.
    unmuteAudio 오디오 트랙 활성화.
    unmuteVideo 비디오 트랙 활성화.
    getId Stream 의 고유 ID 가져오기.
    getUserId 스트림이 소속된 사용자 ID 가져오기.
    setAudioOutput 오디오 출력 장치 설정.
    getAudioLevel 현재 볼륨 가져오기. 이 메소드는 로컬 스트림 또는 원격 스트림에 오디오 데이터가 있는 경우에만 작동합니다.
    setAudioCaptureVolume 마이크 수집 볼륨 설정.
    hasAudio 오디오 트랙 포함 여부.
    hasVideo 비디오 트랙 포함 여부.
    getAudioTrack 오디오 트랙 가져오기.
    getVideoTrack 비디오 트랙 가져오기.
    getVideoFrame 현재 비디오 프레임 가져오기.
    on Stream 이벤트 수신.
    off Stream 이벤트 수신 취소.

    RemoteStream

    Client.on('stream-added') 수신을 통해 얻은 원격 오디오/비디오 스트림은 Stream의 하위 클래스입니다.

    API 설명
    getType 원격 스트림 유형 가져오기. 주로 원격 스트림이 메인 오디오/비디오 스트림인지 또는 보조 비디오 스트림(일반적으로 화면 공유 스트림)인지 판단하는데 사용됩니다.
    play 오디오/비디오 스트림 재생.
    stop 오디오/비디오 스트림 재생 중지.
    resume 오디오/비디오 스트림 재개.
    close 오디오/비디오 스트림 비활성화.
    muteAudio 오디오 트랙 비활성화.
    muteVideo 비디오 트랙 비활성화.
    unmuteAudio 오디오 트랙 활성화.
    unmuteVideo 비디오 트랙 활성화.
    getId Stream 의 고유 ID 가져오기.
    getUserId 스트림이 소속된 사용자 ID 가져오기.
    setAudioOutput 오디오 출력 장치 설정.
    setAudioVolume 재생 볼륨 설정.
    getAudioLevel 현재 볼륨 가져오기. 이 메소드는 로컬 스트림 또는 원격 스트림에 오디오 데이터가 있는 경우에만 작동합니다.
    hasAudio 오디오 트랙 포함 여부.
    hasVideo 비디오 트랙 포함 여부.
    getAudioTrack 오디오 트랙 가져오기.
    getVideoTrack 비디오 트랙 가져오기.
    getVideoFrame 현재 비디오 프레임 가져오기.
    on Stream 이벤트 수신.
    off Stream 이벤트 수신 취소.

    RtcError

    RtcError 객체.

    API 설명
    getCode 오류 코드 가져오기.

    ClientEvent

    Client에 의해 트리거될 이벤트 목록, 즉 'client.on('eventName')' 이벤트 수신의 이벤트 이름 'eventName'입니다.

    API 설명
    stream-added 원격 스트림 추가 이벤트는 원격 사용자가 스트림을 배포할 때 공지를 받습니다.
    stream-removed 원격 스트림 제거 이벤트. 원격 사용자가 스트림 게시를 취소하면 공지를 받습니다.
    stream-updated 원격 스트림 업데이트 이벤트. 원격 사용자가 오디오 및 비디오 트랙을 추가, 제거 또는 교체할 때 공지를 받습니다.
    stream-subscribed subscribe()가 성공적으로 호출될 때 트리거되는 원격 스트림 구독 성공 이벤트.
    connection-state-changed 로컬 client와 Tencent Cloud 간의 연결 상태 변경 이벤트.
    peer-join 원격 사용자 방 입장 이벤트.
    peer-leave 원격 사용자 퇴장 이벤트 알림.
    mute-audio 원격 스트림의 오디오 비활성화 이벤트. 원격 사용자가 오디오를 비활성화할 때 트리거됩니다.
    mute-video 원격 스트림의 비디오 비활성화 이벤트. 원격 사용자가 비디오를 비활성화할 때 트리거됩니다.
    unmute-audio 원격 스트림의 오디오 활성화 이벤트. 원격 사용자가 오디오를 활성화할 때 트리거됩니다.
    unmute-video 원격 스트림의 비디오 활성화 이벤트. 원격 사용자가 비디오를 활성화할 때 트리거됩니다.
    client-banned 사용자 강제 퇴장 이벤트. 강제 퇴장 이유:
    • 같은 이름의 사용자가 같은 방에 입장하는 경우. 참고: 같은 이름의 사용자가 같은 방에 동시에 입장하는 것은 금지되며, 이는 두 사람 사이에 비정상적인 음성 및 영상 통화가 발생할 수 있으므로 서비스측에서 이러한 상황을 방지해야 합니다.
    • 서버 API를 사용하는 계정 관리자에 의해 퇴장 당하는 경우.
    network-quality 네트워크 품질 통계 데이터 이벤트. 방에 입장한 후 시작되며 업스트림 및 다운스트림 네트워크 품질 데이터를 포함하여 2초마다 트리거됩니다.
    audio-volume 볼륨 크기 이벤트.
    볼륨 크기 콜백을 ​​활성화하기 위해 enableAudioVolumeEvaluation 인터페이스를 호출한 후 SDK는 주기적으로 이 이벤트를 발생시켜 각 userId의 볼륨 크기를 공지합니다.
    sei-message sei 메세지 수신.
    error 복구할 수 없는 오류가 발생할 때 발생되는 오류 이벤트. 오류 코드를 참고하십시오.

    StreamEvent

    Stream에 의해 트리거된 이벤트 목록입니다.

    API 설명
    player-state-changed Audio/Video Player 상태 변경 이벤트.
    screen-sharing-stopped 로컬 화면 공유 중지 이벤트. 로컬 화면 공유 스트림에만 유효합니다.
    connection-state-changed Stream 연결 상태 변경 이벤트. 'stream-added' 이벤트 콜백에서 이 이벤트를 수신하고, 'stream-removed' 이벤트 콜백에서 수신하는 이벤트를 취소합니다.
    error 복구할 수 없는 오류가 발생할 때 발생되는 오류 이벤트. 오류 코드를 참고하십시오.

    문의하기

    문의사항은 colleenyu@tencent.com으로 이메일을 보내주십시오.

    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원