全部产品
视频直播

主播终止连麦

更新时间:2017-09-04 19:08:57   分享:   

  1. 主播向APP Server发送终止连麦通知,并终止连麦(即结束播放副麦A、C的播放地址)。

    (客户端代码:LifecyclePublisherMgr.java文件中,调用SDK接口abortChat)

    1. mInviteServiceBI.terminateCall(mRoomID, new ServiceBI.Callback()
  2. APP Server向主播和A、B、C发送终止连麦的信号。

    (APP Server端代码:controller\videocallCtrl.js文件中)

    1. let liveInfo = yield live.getLives(roomId);
    2. if (!liveInfo || liveInfo.length == 0) {
    3. response.fail(res, {
    4. code: 2003,
    5. message: `${roomId}直播记录不存在`
    6. })
    7. return
    8. }
    9. //结束连麦推送
    10. let msg = util.createMqttMsg({
    11. roomId: roomId,
    12. uid: liveInfo.uid,
    13. name: liveInfo.name,
    14. }, 4);
  3. 副麦A退出连麦(即结束推流、结束播放主播和副麦C的播放地址,开始播放混流地址)。

    (客户端代码:PlayerSDKHelper.java文件中,调用SDK接口offlineChat)

    1. public void abortChat() {
    2. if (mChatParter != null && isChatting) {
    3. Log.d(TAG, "Call mChatParter.offlineChat()");
    4. mCallback.onEvent(IPlayerMgr.TYPE_PARTER_OPT_START, null);
    5. mChatParter.offlineChat();
    6. isChatting = false;
    7. hasOnlineChats = false;
    8. }
    9. }
  4. 副麦C退出连麦(即结束推流、结束播放主播和副麦A的播放地址,开始播放混流地址)。

    代码同上

  5. APP Server调用AliLive的混流接口,结束混流,A、C退出混流画面。至此,连麦终止。

    (APP Server端代码:controller\videocallCtrl.js文件中,调用OpenAPI接口StopMultipleStreamMixService)

    1. static closeMix(mainRoomId) {
    2. console.log(`关闭混流:mainRoomId=${mainRoomId}`);
    3. return cdn.stopMux(mainRoomId);
    4. }
本文导读目录
本文导读目录
以上内容是否对您有帮助?