Overview of Scenario-Based Solutions
소셜 엔터테인먼트
이커머스 라이브 방송
Audio/Video Call
원거리 실시간 조작
스마트 고객 서비스
AI 인터뷰




sudo gem install cocoapods
pod init
platform :ios, '8.0'target 'App' do# RTC Engine 라이트 버전 (추천)# 설치 패키지 크기 증가가 최소화되었지만 RTC Engine와 라이브 방송 플레이어(TXLivePlayer) 두 가지 기능만 지원됩니다.pod 'TXLiteAVSDK_TRTC', :podspec => 'https://liteav.sdk.qcloud.com/pod/liteavsdkspec/TXLiteAVSDK_TRTC.podspec'#LiteAVSDK 전체 기능 버전# RTC (RTC Engine), 라이브방송 플레이어(TXLivePlayer), RTMP 푸시 스트리밍(TXLivePusher), VOD 플레이어(TXVodPlayer), 짧은 비디오 레코딩 및 편집(UGSV) 등 다양한 기능을 포함합니다.pod 'TXLiteAVSDK_Professional', :podspec => 'https://liteav.sdk.qcloud.com/pod/liteavsdkspec/TXLiteAVSDK_Professional.podspec'end
pod install
pod update
pod setuppod repo updaterm ~/Library/Caches/CocoaPods/search_index.json
Privacy - Microphone Usage Description,마이크 사용 목적 안내문을 함께 입력하세요Privacy - Camera Usage Description,그리고 카메라 사용 목적 안내문을 입력하세요.



// RTC Engine SDK 인스턴스의 생성(싱글톤 모드)self.trtcCloud = [TRTCCloud sharedInstance];// 이벤트 리스너의 설정self.trtcCloud.delegate = self;// SDK의 다양한 이벤트 알림(예: 오류 코드, 경고 코드, 오디오및 비디오 상태 매개변수 등)- (void)onError:(TXLiteAVError)errCode errMsg:(nullable NSString *)errMsg extInfo:(nullable NSDictionary *)extInfo {NSLog(@"%d: %@", errCode, errMsg);}- (void)onWarning:(TXLiteAVWarning)warningCode warningMsg:(nullable NSString *)warningMsg extInfo:(nullable NSDictionary *)extInfo {NSLog(@"%d: %@", warningCode, warningMsg);}// 이벤트 리스너의 제거self.trtcCloud.delegate = nil;// RTC Engine SDK 인스턴스(싱글톤 모드)를 파기합니다.[TRTCCloud destroySharedIntance];
rtmp://intl-rtmp.rtc.qq.com/push/방번호?sdkappid=앱&userid=사용자명&usersig=서명
rtmp://intl-rtmp.rtc.qq.com/push/hello-string-room?sdkappid=140**66&userid=rtmp2&usersig=eJw1jdERBZ8qKGRj8Yp-wVbvmGMVZqS7w-mMDQL

roomId과 문자열 유형 strRoomId으로 구분되며, 두 유형의 방은 서로 통하지 않으므로 방 번호 유형을 통일기키는 것을 권장합니다.TRTC_APP_SCENE_VIDEOCALL으로 선택하는 것을 권장합니다.이렇게 하면 지연 시간이 더 짧아집니다.
- (void)enterRoomByAudienceWithUserId:(NSString *)userId roomId:(NSString *)roomId {TRTCParams *params = [[TRTCParams alloc] init];// 문자열 방 번호를 예로 들면params.strRoomId = roomId;params.userId = userId;// 업무 백엔드에서 가져온 UserSigparams.userSig = @"userSig";// 손님의 SDKAppID로 교체합니다params.sdkAppId = 0;// 시청자 역할의 지정params.role = TRTCRoleAudience;// 인터랙티브 라이브 방송 시나리오로 방 입장하기[self.trtcCloud enterRoom:params appScene:TRTCAppSceneVideoCall];}// 방 입장 결과 이벤트의 콜백- (void)onEnterRoom:(NSInteger)result {if (result > 0) {// result는 방에 입장하는 데 소요된 시간(밀리초)을 나타냅니다.NSLog(@"Enter room succeed!");} else {// result는 방 입장 실패의 오류 코드를 나타냅니다NSLog(@"Enter room failed!");}}
- (void)onUserAudioAvailable:(NSString *)userId available:(BOOL)available {// 원격 사용자가 자신의 오디오를 게시/취소했습니다// 자동 구독 모드에서는 사용자가 아무런 작업을 하지 않아도 SDK가 원격 사용자의 오디오를 자동으로 재생합니다.}- (void)onUserVideoAvailable:(NSString *)userId available:(BOOL)available {// 원격 사용자가 메인 비디오 화면을 게시/취소했습니다if (available) {// 원격 사용자의 비디오 스트림을 구독하고 비디오 렌더링 컨트롤을 바인딩합니다[self.trtcCloud startRemoteView:userId streamType:TRTCVideoStreamTypeBig view:self.remoteView];} else {// 원격 사용자의 비디오 스트림 구독을 중지하고 렌더링 컨트롤을 릴리스합니다[self.trtcCloud stopRemoteView:userId streamType:TRTCVideoStreamTypeBig];}}
- (void)setupRemoteRenderParams {TRTCRenderParams *params = [[TRTCRenderParams alloc] init];// 화면 미러 모드params.mirrorType = TRTCVideoMirrorTypeAuto;// 화면 채우기 모드params.fillMode = TRTCVideoFillMode_Fill;// 화면 회전 각도params.rotation = TRTCVideoRotation_0;// 원격 화면의 렌더링 모드를 설정합니다[self.trtcCloud setRemoteRenderParams:@"userId" streamType:TRTCVideoStreamTypeBig params:params];}
- (void)exitRoom {[self.trtcCloud stopLocalAudio];[self.trtcCloud stopLocalPreview];[self.trtcCloud exitRoom];}// 방 나가기 이벤트의 콜백- (void)onExitRoom:(NSInteger)reason {if (reason == 0) {NSLog(@"exitRoom을 자동으로 호출하여 방에서 나가기");} else if (reason == 1) {NSLog(@"서버에 의해 현재 방에서 나가게 됩니다");} else if (reason == 2) {NSLog(@"현재 방 전체가 해체됩니다");}}
onExitRoom 콜백을 통해 알려줍니다.enterRoom을 다시 호출하거나 다른 음성및 영상 SDK로 전환하려면 onExitRoom 콜백이 발생한 후에 관련 작업을 수행하십시오. 그렇지 않으면 카메라나 마이크 장치가 점유됨 등 다양한 오류 문제가 발생할 수 있습니다.열거형 | 값 | 설명 |
ERR_TRTC_INVALID_USER_SIG | -3320 | 방 입장 매개변수 userSig가 올바르지 않습니다. TRTCParams.userSig이 비어 있는지 확인하세요. |
ERR_TRTC_USER_SIG_CHECK_FAILED | -100018 | UserSig 검증에 실패했습니다. 매개변수 TRTCParams.userSig이 올바르게 입력되었는지 또는 만료되지 않았는지 확인하세요. |
열거형 | 값 | 설명 |
ERR_TRTC_CONNECT_SERVER_TIMEOUT | -3308 | 방 입장 요청이 시간을 초과하는 경우, 네트워크 연결이 끊겼는지 또는 VPN이 켜져 있는지 확인하세요. 4G로 전환하여 테스트할 수도 있습니다. |
ERR_TRTC_INVALID_SDK_APPID | -3317 | 방 입장 매개변수 sdkAppId가 잘못되었습니다. TRTCParams.sdkAppId이 비어 있는지 확인하세요. |
ERR_TRTC_INVALID_ROOM_ID | -3318 | 방 입장 매개변수 roomId가 잘못되었습니다. TRTCParams.roomId 또는 TRTCParams.strRoomId이 비어 있는지 확인하세요. roomId와 strRoomId는 혼용할 수 없습니다. |
ERR_TRTC_INVALID_USER_ID | -3319 | 방 입장 매개변수 userId가 올바르지 않습니다. TRTCParams.userId이 비어 있는지 확인하세요. |
ERR_TRTC_ENTER_ROOM_REFUSED | -3340 | 방 입장 요청이 거부되었습니다. enterRoom을 연속적으로 호출하여 동일한 ID의 방에 입장했는지 확인하세요. |
열거형 | 값 | 설명 |
ERR_CAMERA_START_FAIL | -1301 | Windows 또는 Mac 장치에서 카메라 구성 프로그램(드라이버)이 비정상일 경우, 카메라 열 수가 없습니다. 장치를 비활성화한 후 다시 활성화하거나, 기기를 재시작하거나, 구성 프로그램을 업데이트해보세요. |
ERR_MIC_START_FAIL | -1302 | Windows 또는 Mac 장치에서 마이크 구성 프로그램(드라이버)에 이상이 있어서 마이크를 열 수 없습니다. 장치를 비활성화한 후 다시 활성화하거나, 기기를 재시작하거나, 구성 프로그램을 업데이트해보세요. |
ERR_CAMERA_NOT_AUTHORIZED | -1314 | 카메라 장치에 권한이 없습니다. 일반적으로 모바일 장치에서 발생하며, 사용자가 권한을 거부해서 발생했을 수 있습니다. |
ERR_MIC_NOT_AUTHORIZED | -1317 | 마이크 장치에 권한이 없습니다. 일반적으로 모바일 장치에서 발생하며, 사용자가 권한을 거부해서 발생했을 수 있습니다. |
ERR_CAMERA_OCCUPY | -1316 | 카메라가 사용 중입니다. 다른 카메라를 열어보세요. |
ERR_MIC_OCCUPY | -1319 | 마이크가 사용 중입니다. 예를 들어 모바일 장치에서 통화 중일 때 마이크를 열 수가 없습니다. |

피드백