tencent cloud

文档反馈

观众连麦

最后更新时间:2024-12-24 16:11:36
    本文档主要介绍如何使用视频直播核心组件 LiveStreamCore 模块的 LiveCoreView 实现观众连麦。
    LiveCoreView 在观众连麦方面支持如下能力:

    前提条件

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

    使用指引

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

    您需要先导入 LiveStreamCore 模块,然后创建一个 LiveCoreView 视图对象,并将其添加到自己的视图上。
    iOS
    Android
    import LiveStreamCore
    import RTCRoomEngine
    
    class AudienceConnectionController: UIViewController {
    private let liveCoreView: LiveCoreView = {
    let view = LiveCoreView()
    return view
    }()
    override func viewDidLoad() {
    super.viewDidLoad()
    self.liveCoreView.registerConnectionObserver(observer: self)
    // 将 liveCoreView 添加到视图上,同时设置好布局约束
    }
    deinit {
    self.liveCoreView.unregisterConnectionObserver(observer: self)
    }
    }
    public class AudienceConnectionActivity extends AppCompatActivity implements LiveCoreViewDefine.ConnectionObserver {
    private LiveCoreView liveCoreView;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    liveCoreView = new LiveCoreView(this);
    addContentView(liveCoreView,
    new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    
    liveCoreView.registerConnectionObserver(this);
    }
    
    @Override
    protected void onDestroy() {
    super.onDestroy();
    liveCoreView.unregisterConnectionObserver(this);
    }
    }

    步骤2:观众连麦

    申请连麦

    当您想要和某人连麦时,调用 requestIntraRoomConnection 接口,传入三个参数: 连麦的用户Id、超时时长和是否打开摄像头。
    iOS
    Android
    let userId = "100012" // 请将这里替换成您想发起连麦的用户的用户Id,当您传入空字符串时,默认和房主连麦
    let timeout = 30 // 请将这里替换成您申请上麦的超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
    let openCamera = true //当您想发起视频连麦时,openCamera为true,若为语音连麦,则openCamera为false
    self.liveCoreView.requestIntraRoomConnection(userId: userId, timeOut: timeout, openCamera: true) {
    // 发起连麦请求成功
    } onError: { code, message in
    // 发起连麦请求失败
    }
    String userId = "anchorUserId"; // 请将这里替换成您想发起连麦的用户的用户Id,当您传入空字符串时,默认和房主连麦
    int timeout = 30; // 请将这里替换成您申请上麦的超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发超时回调
    boolean openCamera = true; //当您想发起视频连麦时,openCamera为true,若为语音连麦,则openCamera为false
    liveCoreView.requestIntraRoomConnection(userId, timeout, true, new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 发起连麦请求成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 发起连麦请求失败
    }
    });
    当您是连麦被邀请方时,您会收到 onUserConnectionRequest 回调,您可调用 respondIntraRoomConnection 接口接受/拒绝连麦。
    iOS
    Android
    func onUserConnectionRequest(inviterUser: TUIUserInfo) {
    let isAccepted = true // true:同意连麦, false:拒绝连麦
    self.liveCoreView.respondIntraRoomConnection(userId: inviterUser.userId, isAccepted: isAccepted) {
    // 响应请求成功
    } onError: {code, message in
    // 响应请求失败
    }
    }
    @Override
    public void onUserConnectionRequest(TUIRoomDefine.UserInfo userInfo) {
    boolean isAccepted = true; // true:同意连麦, false:拒绝连麦
    liveCoreView.respondIntraRoomConnection(userInfo.userId, isAccepted, new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 响应请求成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 响应请求失败
    }
    });
    }

    观众主动断开连麦

    当您不想和房主连麦时,调用 disconnectUser 接口即可断开连麦。
    iOS
    Android
    self.liveCoreView.terminateIntraRoomConnection()
    liveCoreView.terminateIntraRoomConnection();

    房主中断和观众连麦

    当您想中断和某观众的连麦时,调用 disconnectUser 接口,传入对应用户的用户Id。
    iOS
    Android
    let targetUserId = "100010" //请将这里替换成您想要中断连麦的观众用户Id
    self.liveCoreView.disconnectUser(userId: targetUserId) {
    // 中断连麦成功
    } onError: { code, message in
    // 中断连麦失败
    }
    String targetUserId = "100010"; //请将这里替换成您想要中断连麦的观众用户Id
    liveCoreView.disconnectUser(targetUserId, new TUIRoomDefine.ActionCallback() {
    @Override
    public void onSuccess() {
    // 中断连麦成功
    }
    
    @Override
    public void onError(TUICommonDefine.Error error, String message) {
    // 中断连麦失败
    }
    });
    联系我们

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

    技术支持

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

    7x24 电话支持