产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
TUILiveListManager 插件的 fetchLiveList 接口获取当前直播间的列表,然后选择预览或加入观看。该接口采用分页拉取的方式返回数据,需要传递以下两个参数:nextCursor 值。import RTCRoomEngineguard let liveListManager = TUIRoomEngine.sharedInstance().getExtension(extensionType: .liveListManager) as? TUILiveListManager else {return}let cursor = "" // 分页拉取游标,首次调用请传递空字符串,后续调用请使用前一次返回的nextCursorlet count = 20 // 推荐每次分页拉取 20 条记录liveListManager.fetchLiveList(cursor: cursor, count: count) { nextCursor, liveInfoList in// 拉取直播间列表成功// nextCursor:续拉游标// liveInfoList:直播间列表} onError: { code, message in// 拉取直播间列表失败}
String cursor = ""; // 分页拉取游标,首次调用请传递空字符串,后续调用请使用前一次返回的nextCursor,即result.cursorint count = 20; // 推荐每次分页拉取 20 条记录TUILiveListManager liveListManager = (TUILiveListManager)TUIRoomEngine.sharedInstance().getExtension(TUICommonDefine.ExtensionType.LIVE_LIST_MANAGER);liveListManager.fetchLiveList(cursor, count, new TUILiveListManager.LiveInfoListCallback() {@Overridepublic void onSuccess(TUILiveListManager.LiveInfoListResult result) {// 拉取直播间列表成功// result.cursor:续拉游标// result.liveInfoList:直播间列表}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 拉取直播间列表失败}});
TUIRoomEngine.once('ready', () => {const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const liveList = [];let cursor = '';let count = 20;let result;do {result = await liveListManager.fetchLiveList({ cursor, count });liveList.push(...result.liveInfoList);cursor = result.cursor;} while(cursor !== '');});
TUILiveListManager 插件的 startPreloadVideoStream 接口,该接口需要传递以下 3 个参数:import RTCRoomEngineguard let liveListManager = TUIRoomEngine.sharedInstance().getExtension(extensionType: .liveListManager) as? TUILiveListManager else {return}let roomId = "video_100001" // 请替换成您自己的房间 IDlet muteAudio = true // 预览直播间画面时,通常关闭音频播放,建议您设置为 truelet preloadVideoView = UIView()// ...将 preloadVideoView 添加到您的视图上并对其进行布局liveListManager.startPreloadVideoStream(roomId: roomId, isMuteAudio: muteAudio, view: preloadVideoView) { roomId in// 开始预览播放} onLoading: { roomId in} onError: { roomId, code, message in// 预览失败}
String roomId = "video_100001"; // 请替换成您自己的房间 IDboolean muteAudio = true; // 预览直播间画面时,通常关闭音频播放,建议您设置为 trueTUIVideoView preloadVideoView = new TUIVideoView(context);// ...将 preloadVideoView 添加到您的视图上并对其进行布局TUILiveListManager liveListManager = (TUILiveListManager)TUIRoomEngine.sharedInstance().getExtension(TUICommonDefine.ExtensionType.LIVE_LIST_MANAGER);liveListManager.startPreloadVideoStream(roomId, muteAudio, preloadVideoView, new TUIRoomDefine.PlayCallback() {@Overridepublic void onPlaying(String roomId) {// 开始预览播放}@Overridepublic void onLoading(String roomId) {}@Overridepublic void onPlayError(String roomId, TUICommonDefine.Error error, String message) {// 预览失败}});
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();await liveListManaer.startPreloadVideoStream({roomId: 'roomId',isMuteAudio: true,view: 'remote_preview_camera' // view 为播放远端用户流的 div 元素的 id});
TUILiveListManager 插件的 stopPreloadVideoStream 并传入直播间 ID 来结束直播间画面预览。import RTCRoomEngineguard let liveListManager = TUIRoomEngine.sharedInstance().getExtension(extensionType: .liveListManager) as? TUILiveListManager else {return}let roomId = "video_100001" // 请替换成您自己的房间 IDliveListManager.stopPreloadVideoStream(roomId);
String roomId = "video_100001"; // 请替换成您自己的房间 IDTUILiveListManager liveListManager = (TUILiveListManager)TUIRoomEngine.sharedInstance().getExtension(TUICommonDefine.ExtensionType.LIVE_LIST_MANAGER);liveListManager.stopPreloadVideoStream(roomId);
const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();await liveListManager.stopPreloadVideoStream({ roomId: 'roomId' });
TUILiveListManager插件的 joinLive接口并传入直播间 ID 加入直播间。加入成功后,请调用 TUIRoomEngine 的 muteRemoteAudioStream 接口开启主播音频播放。import RTCRoomEnginelet roomId = "video_100001"guard let liveListManager = TUIRoomEngine.sharedInstance().getExtension(extensionType: .liveListManager) as? TUILiveListManager else {return}liveListManager.joinLive(roomId: roomId, onSuccess: { liveInfo in// 加入直播间成功let sdkAppId = "xxxx" // 请替换成您自己 APP 的 sdkAppIDlet userId = "livekit_" + sdkAppId + "_feedback_" + roomId // 固定格式:"livekit_sdkAppId_feedback_roomId"TUIRoomEngine.sharedInstance().muteRemoteAudioStream(userId, isMute: false)}, onError: { code, message in// 加入直播间失败})
String roomId = "video_100001";TUILiveListManager liveListManager = (TUILiveListManager)TUIRoomEngine.sharedInstance().getExtension(TUICommonDefine.ExtensionType.LIVE_LIST_MANAGER);liveListManager.joinLive(roomId , new TUILiveListManager.LiveInfoCallback() {@Overridepublic void onSuccess(TUILiveListManager.LiveInfo liveInfo) {// 加入直播间成功,String sdkAppId = "xxxx"; // 请替换成您自己 APP 的 sdkAppIDString userId = "livekit_" + sdkAppId + "_feedback_" + roomId;// 固定格式:"livekit_sdkAppId_feedback_roomId"TUIRoomEngine.sharedInstance().muteRemoteAudioStream(userId, false);}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 加入直播间失败}});
TUIRoomEngine.once('ready', () => {const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();const roomId = 'live_room';await liveListManager.joinLive(roomId);const sdkAppId = "xxxx"; // 请替换成您自己 APP 的 sdkAppIDconst userId = "livekit_" + sdkAppId + "_feedback_" + roomId;await roomEngine.muteRemoteAudioStream({userId: userId, isMute: false })});
muteRemoteAudioStream。muteRemoteAudioStream时,第一个参数 userId的格式为 livekit_sdkAppId_feedback_roomId,其中 sdkAppId 需替换为您当前应用的 SDKAppID,roomId为当前直播间的房间 ID。TUILiveListManager 插件的 leaveLive 接口,传入直播间 ID 来离开直播间并结束观看。import RTCRoomEngineguard let liveListManager = TUIRoomEngine.sharedInstance().getExtension(extensionType: .liveListManager) as? TUILiveListManager else {return}liveListManager.leaveLive { TUILiveStatisticsData inprint("success")} onError: { code, message inprint("failure, code:\\(code), message:\\(message)")}
TUILiveListManager liveListManager = (TUILiveListManager)TUIRoomEngine.sharedInstance().getExtension(TUICommonDefine.ExtensionType.LIVE_LIST_MANAGER);liveListManager.leaveLive(new TUILiveListManager.StopLiveCallback() {@Overridepublic void onSuccess(TUILiveListManager.LiveStatisticsData statisticData) {Log.i("sdk", "success");}@Overridepublic void onError(TUICommonDefine.Error error, String message) {Log.i("sdk", "failure code:" + error + ",message:" + message);}});
TUIRoomEngine.once('ready', () => {const roomEngine = new TUIRoomEngine();const liveListManager = roomEngine.getLiveListManager();await liveListManager.leaveLive();});
文档反馈