LiveStreamCore
模块的 LiveCoreView
开播,只有开播后,其他观众才能进入到该视频直播间中观看主播的直播。LiveStreamCore
模块,然后创建一个 LiveCoreView
视图对象,并将其添加到自己的视图上。import RTCRoomEngineimport LiveStreamCoreclass BroadcastController: UIViewController {private let liveCoreView: LiveCoreView = {let view = LiveCoreView()return view}()override func viewDidLoad() {super.viewDidLoad()// 将 liveCoreView 添加到视图上,同时设置好布局约束}}
import com.trtc.uikit.livekit.livestreamcore.LiveCoreView;public class LiveActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);LiveCoreView liveCoreView = new LiveCoreView(this);addContentView(liveCoreView,new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));}}
startLiveStream
接口时需要填写关键参数 TUIRoomInfo
,接下来进行详细介绍:TUIRoomInfo
由很多的字段构成,但通常您只需要关心如下几个字段的填写:参数名称 | 字段含义 | 补充说明 | 数据类型 | 填写示例 |
roomId | 房间ID | 只允许包含大小写英文字母(a-z、A-Z)、数字(0-9)及下划线和连词符。 | 字符串 | "room_100001" |
name | 房间名称 | 字符串类型的房间名称。 | 字符串 | "denny`s room" |
seatMode | 上麦模式 | 该字段只有开启麦位控制后生效。 分为“自由上麦模式(freeToTake)”和“申请上麦模式(applyToTake)”。自由上麦模式下台下观众可以自由上麦,无需申请。上麦模式下台下观众上麦需要房主或同意后才能上麦。 | 枚举值 | TUISeatMode.applyToTake |
maxSeatCount | 最大麦位数 | 数字类型的最大麦位数,这里指最多maxSeatCount个人同时在麦上。 | 数字 | 10 |
isSeatEnabled | 是否开启麦位控制 | 布尔类型的麦位控制使能标志符。 | 布尔值 | true |
roomType | 房间类型 | 分为“会议(conference)”和“直播(live)”两种房间类型,视频直播这里使用live。 | 枚举值 | TUIRoomType.live |
TUIRoomInfo
后,就可以调用 startLiveStream
接口函数开播了。startCamera
和 startMicrophone
连个接口开启本地摄像头和麦克风,确保观众可以看到您的视频画面和听到您的声音。// 组装 TRTC 进房参数,请将 TRTCParams 中的各字段都替换成您自己的参数let roomInfo = TUIRoomInfo()roomInfo.roomId = "voice_100001" // 请替换成您自己的房间IDroomInfo.name = "denny`s room" // 请替换成您自己的房间名称roomInfo.maxSeatCount = 10 // 请替换成您购买的Live套餐包的最大麦位数roomInfo.isSeatEnabled = true // 如果您不需要麦位控制,可以将isSeatEnabled置为falseroomInfo.roomType = .live // 房间类型请确保是直播(live)类型roomInfo.seatMode = .applyToTake // 通常视频直播的上麦模式均为申请上麦模式(applyToTake)self.liveCoreView.startLiveStream(roomInfo: roomInfo) { [weak self] roomInfo in// 开播成功guard let self = self else { return }// 打开本地摄像头self.liveCoreView.startCamera(useFrontCamera: true) { // 这里选择打开前置摄像头,您也可以传入false打开后置摄像头// 打开本地摄像头成功} onError: { code, message in// 打开本地摄像头失败}//打开本地麦克风self.liveCoreView.startMicrophone {// 打开本地麦克风成功} onError: { code, message in// 打开本地麦克风失败}} onError: { code, message in// 开播失败}
TUIRoomDefine.RoomInfo roomInfo = new TUIRoomDefine.RoomInfo();roomInfo.roomId = "voice_100001"; // 请替换成您自己的房间IDroomInfo.name = "denny's room"; // 请替换成您自己的房间名称roomInfo.maxSeatCount = 10; // 请替换成您购买的Live套餐包的最大麦位数roomInfo.isSeatEnabled = true; // 如果您不需要麦位控制,可以将 isSeatEnabled 置为 falseroomInfo.roomType = TUIRoomDefine.RoomType.LIVE; // 房间类型请确保是直播(live)类型roomInfo.seatMode = TUIRoomDefine.SeatMode.APPLY_TO_TAKE; // 通常视频直播的上麦模式均为申请上麦模式(applyToTake)liveCoreView.startLiveStream(roomInfo, new TUIRoomDefine.GetRoomInfoCallback() {@Overridepublic void onSuccess(TUIRoomDefine.RoomInfo roomInfo) {// 开播成功liveCoreView.startCamera(true, new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 打开本地摄像头成功}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 打开本地摄像头失败}});liveCoreView.startMicrophone( new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 打开本地麦克风成功}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 打开本地麦克风失败}});}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 开播失败}});
本页内容是否解决了您的问题?