
功能模块 | 关键动作及功能点 |
通话信令控制 | 呼叫、接听、拒接、挂断 |
音视频通话 | 语音通话、视频通话 |
通话功能控制 | 打开关闭麦克风/摄像头/扬声器、听筒免提切换、摄像头切换、大小窗口切换、网络状态提示、通话时长统计 |

TRTC_APP_SCENE_AUDIOCALL,同时不要指定进房角色 TRTCRoleType。startLocalAudio 可同时设置音质参数,语音通话模式建议设置 TRTC_AUDIO_QUALITY_SPEECH。TRTC_APP_SCENE_VIDEOCALL,同时不要指定进房角色 TRTCRoleType。startLocalPreview,SDK 只会开启摄像头预览,并一直等到您调用 enterRoom 之后才开始推流。startLocalAudio 可同时设置音质参数,视频通话模式建议设置 TRTC_AUDIO_QUALITY_SPEECH。startRemoteView 拉取远端视频流渲染播放。// 打开麦克风mTRTCCloud.muteLocalAudio(false);// 关闭麦克风mTRTCCloud.muteLocalAudio(true);
// 打开麦克风[self.trtcCloud muteLocalAudio:NO];// 关闭麦克风[self.trtcCloud muteLocalAudio:YES];
// 打开扬声器mTRTCCloud.muteAllRemoteAudio(false);// 关闭扬声器mTRTCCloud.muteAllRemoteAudio(true);
// 打开扬声器[self.trtcCloud muteAllRemoteAudio:NO];// 关闭扬声器[self.trtcCloud muteAllRemoteAudio:YES];
// 打开摄像头, 指定前置或后置摄像头及渲染控件mTRTCCloud.startLocalPreview(isFrontCamera, videoView);// 关闭摄像头mTRTCCloud.stopLocalPreview();
// 打开摄像头, 指定前置或后置摄像头及渲染控件[self.trtcCloud startLocalPreview:self.isFrontCamera view:self.videoView];// 关闭摄像头[self.trtcCloud stopLocalPreview];
// 切换听筒mTRTCCloud.getDeviceManager().setAudioRoute(TXDeviceManager.TXAudioRoute.TXAudioRouteEarpiece);// 切换免提mTRTCCloud.getDeviceManager().setAudioRoute(TXDeviceManager.TXAudioRoute.TXAudioRouteSpeakerphone);
// 切换听筒[[self.trtcCloud getDeviceManager] setAudioRoute:TXAudioRouteEarpiece];// 切换免提[[self.trtcCloud getDeviceManager] setAudioRoute:TXAudioRouteSpeakerphone];
// 判断当前是否为前置摄像头boolean isFrontCamera = mTRTCCloud.getDeviceManager().isFrontCamera();// 切换前置或后置摄像头, true: 切换为前置; false: 切换为后置mTRTCCloud.getDeviceManager().switchCamera(!isFrontCamera);
// 判断当前是否为前置摄像头BOOL isFrontCamera = [[self.trtcCloud getDeviceManager] isFrontCamera];// 切换前置或后置摄像头, true: 切换为前置; false: 切换为后置[[self.trtcCloud getDeviceManager] switchCamera:!isFrontCamera];
// 更新本地预览画面渲染控件mTRTCCloud.updateLocalView(previewView);// 更新远端用户视频渲染控件mTRTCCloud.updateRemoteView(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG, previewView);
// 更新本地预览画面渲染控件[self.trtcCloud updateLocalView:self.previewView];// 更新远端用户视频渲染控件[self.trtcCloud updateRemoteView:self.previewView streamType:TRTCVideoStreamTypeBig forUser:self.userId];
@Overridepublic void onNetworkQuality(TRTCCloudDef.TRTCQuality localQuality, ArrayList<TRTCCloudDef.TRTCQuality> remoteQuality) {if (remoteQuality.size() > 0) {switch (remoteQuality.get(0).quality) {case TRTCCloudDef.TRTC_QUALITY_Excellent:Log.i(TAG, "对方网络非常好");break;case TRTCCloudDef.TRTC_QUALITY_Good:Log.i(TAG, "对方网络比较好");break;case TRTCCloudDef.TRTC_QUALITY_Poor:Log.i(TAG, "对方网络一般");break;case TRTCCloudDef.TRTC_QUALITY_Bad:Log.i(TAG, "对方网络较差");break;case TRTCCloudDef.TRTC_QUALITY_Vbad:Log.i(TAG, "对方网络很差");break;case TRTCCloudDef.TRTC_QUALITY_Down:Log.i(TAG, "对方网络极差");break;default:Log.i(TAG, "未定义");break;}}}
#pragma mark - TRTCCloudDelegate- (void)onNetworkQuality:(TRTCQualityInfo *)localQuality remoteQuality:(NSArray<TRTCQualityInfo *> *)remoteQuality {if (remoteQuality.count > 0) {switch(remoteQuality[0].quality) {case TRTCQuality_Unknown:NSLog(@"未定义");break;case TRTCQuality_Excellent:NSLog(@"对方网络非常好");break;case TRTCQuality_Good:NSLog(@"对方网络比较好");break;case TRTCQuality_Poor:NSLog(@"对方网络一般");break;case TRTCQuality_Bad:NSLog(@"对方网络较差");break;case TRTCQuality_Vbad:NSLog(@"对方网络很差");break;case TRTCQuality_Down:NSLog(@"对方网络极差");break;default:break;}}}
localQuality 的 userId 字段为空,代表本地用户网络质量评估结果。remoteQuality 代表远端用户网络质量评估结果,其结果受远端和本地共同影响。// 开始通话时间long callStartTime = 0;// 结束通话时间long callFinishTime = 0;// 通话持续时长(秒)long callDuration = 0;// 远端用户进房回调@Override public void onRemoteUserEnterRoom(String userId) { callStartTime = System.currentTimeMillis(); }// 本地用户退房回调@Override public void onExitRoom(int reason) { callFinishTime = System.currentTimeMillis();callDuration = (callFinishTime - callStartTime) / 1000; }
// 开始通话时间@property (nonatomic, assign) NSTimeInterval callStartTime;// 结束通话时间@property (nonatomic, assign) NSTimeInterval callFinishTime;// 通话持续时长(秒)@property (nonatomic, assign) NSInteger callDuration;// 远端用户进房回调- (void)onRemoteUserEnterRoom:(NSString *)userId {self.callStartTime = [[NSDate date] timeIntervalSince1970];}// 本地用户退房回调- (void)onExitRoom:(NSInteger)reason {self.callFinishTime = [[NSDate date] timeIntervalSince1970];self.callDuration = (NSInteger)(self.callFinishTime - self.callStartTime);}



系统层级 | 产品名称 | 场景用途 |
接入层 | 提供低延时、高品质的音视频实时互动解决方案,是音视频通话场景的基础底座能力。 | |
接入层 | 提供高可靠且稳定的信令传输、自定义消息收发,实现音视频通话场景的通话信令控制。 | |
接入层 | 提供美颜、滤镜、美妆、趣味贴纸、Moji 表情、虚拟形象等实时特效处理能力。 | |
云端服务 | 面向音视频媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。 | |
数据存储 | 提供音视频录制文件、音视频切片文件的存储服务。 |
文档反馈