tencent cloud

文档反馈

最后更新时间:2024-12-24 15:45:15
    本文档主要介绍如何使用视频直播核心组件 LiveStreamCore 模块的 LiveCoreView 开播,只有开播后,其他观众才能进入到该视频直播间中观看主播的直播。

    前提条件

    在使用 LiveStreamCore 前,您需要先 集成与登录 LiveStreamCore ,以便后续功能正常使用。

    使用指引

    步骤1:将 LiveCoreView 添加到视图上

    您需要先导入 LiveStreamCore 模块,然后创建一个 LiveCoreView 视图对象,并将其添加到自己的视图上。
    iOS
    Android
    import RTCRoomEngine
    import LiveStreamCore
    
    class 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 {
    @Override
    protected 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));
    
    }
    }

    步骤2:准备开播参数

    在调用 startLiveStream 接口时需要填写关键参数 TUIRoomInfo,接下来进行详细介绍:

    参数: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

    步骤3:开播

    在准备好步骤2中的参数 TUIRoomInfo 后,就可以调用 startLiveStream 接口函数开播了。
    在开播后,您还需要调用 startCamerastartMicrophone 连个接口开启本地摄像头和麦克风,确保观众可以看到您的视频画面和听到您的声音。
    iOS
    Android
    // 组装 TRTC 进房参数,请将 TRTCParams 中的各字段都替换成您自己的参数
    let roomInfo = TUIRoomInfo()
    roomInfo.roomId = "voice_100001" // 请替换成您自己的房间ID
    roomInfo.name = "denny`s room" // 请替换成您自己的房间名称
    roomInfo.maxSeatCount = 10 // 请替换成您购买的Live套餐包的最大麦位数
    roomInfo.isSeatEnabled = true // 如果您不需要麦位控制,可以将isSeatEnabled置为false
    roomInfo.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"; // 请替换成您自己的房间ID
    roomInfo.name = "denny's room"; // 请替换成您自己的房间名称
    roomInfo.maxSeatCount = 10; // 请替换成您购买的Live套餐包的最大麦位数
    roomInfo.isSeatEnabled = true; // 如果您不需要麦位控制,可以将 isSeatEnabled 置为 false
    roomInfo.roomType = TUIRoomDefine.RoomType.LIVE; // 房间类型请确保是直播(live)类型
    roomInfo.seatMode = TUIRoomDefine.SeatMode.APPLY_TO_TAKE; // 通常视频直播的上麦模式均为申请上麦模式(applyToTake)
    
    liveCoreView.startLiveStream(roomInfo, new TUIRoomDefine.GetRoomInfoCallback() {
    @Override
    public void onSuccess(TUIRoomDefine.RoomInfo roomInfo) {
    // 开播成功
    liveCoreView.startCamera(true, new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 打开本地摄像头成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 打开本地摄像头失败
    }
    });
    
    liveCoreView.startMicrophone( new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 打开本地麦克风成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 打开本地麦克风失败
    }
    });
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 开播失败
    }
    });
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持