全部产品
视频直播

副麦退出连麦

更新时间:2017-09-06 11:46:48   分享:   

  1. 副麦B向APP Server发送结束连麦的通知,然后结束连麦(即停止推流、停止播放主播和副麦A的播放地址,开始播放混流地址)。

    (客户端代码:LiveRoomViewController.m文件中)

    1. [SendMessageManager leaveVideoCall:self.roomId uid:self.userUid block:^(NSError *error) {
    2. }];
  2. APP Server调用AliLive的混流接口,B退出混流画面

    (APP Server端代码:service\videocall.js文件中,调用OpenAPI接口RemoveMultipleStreamMixService)

    1. static removeToMix(mainRoomId, roomId, uid, name) {
    2. console.log(`退出连麦:mainRoomId=${mainRoomId} roomId=${roomId}`);
    3. return new Promise((resolve, reject) => {
    4. //退出连麦
    5. cdn.removeToMix(mainRoomId, roomId).then(() => {
    6. VideoCall.remove(mainRoomId, uid + "|" + roomId);
    7. VideoCall.removeMainBy(roomId, mainRoomId);
    8. live.setProperty(roomId, 'mixedStatus', 2); //离开连麦
    9. let msg = dqUtil.createMqttMsg({
    10. mainRoomId: mainRoomId,
    11. roomId: roomId,
    12. playUrl: address.getShortRtmpPlayUrl(roomId),
    13. uid: uid,
    14. name: name
    15. }, 19);
    16. //退出连麦通知
    17. mns.publish(mainRoomId, msg, 5);
    18. resolve("");
    19. }, (err) => {
    20. reject(err);
    21. })
    22. });
    23. }
  3. APP Server发送副麦B退出直播的消息给主播及A、B、C。

    (APP Server端代码:service\videocall.js文件中)

    1. //退出连麦通知
    2. mns.publish(mainRoomId, msg, 5);
  4. 主播与B停止连麦(即结束播放B的播放地址)。

    (客户端代码:StartLiveViewController.mm文件中,调用SDK接口removeChats)

    1. - (void)onGetLeaveVideoChatMessage:(LiveInviteInfo*)inviteInfo
    2. {
    3. //观众主动断开
    4. [self removeLiveCallWithPlayUid:inviteInfo.uid];
    5. //移除最后一个连麦,则整个连麦关闭
    6. if ([self.currentInviterArray count] == 0) {
    7. [self.publiserVideoCall abortChat];
    8. return;
    9. }
    10. }
    11. - (void)removeLiveCallWithPlayUid:(NSString *)uid
    12. {
    13. // 通过uid找到playUrl
    14. ......
    15. NSURL *playURL = [NSURL URLWithString:playUrl];
    16. // 移除其中一个连麦
    17. int ret = [self.publiserVideoCall removeChats:@[playURL]];
    18. }
  5. 副麦A与B停止连麦(即结束播放B的播放地址)。

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

    1. [self.mediaPlayerCall offlineChat];
本文导读目录
本文导读目录
以上内容是否对您有帮助?