【问题标题】:Twilio call put on on hold iosTwilio 通话暂停 ios
【发布时间】:2020-06-29 04:05:44
【问题描述】:

我正试图在用户离开视图时立即暂停 Twillio 呼叫,无论是被用户还是被任何中断(如接到另一个电话)。

func addObservers() {
          NotificationCenter.default.addObserver(self,
                                                 selector: #selector(applicationDidBecomeActive),
                                                 name: UIApplication.didBecomeActiveNotification,
                                                 object: nil)
        
    
    NotificationCenter.default.addObserver(self,
                                           selector: #selector(applicationDidInActive),
                                           name: UIApplication.didEnterBackgroundNotification,
                                           object: nil)
    }

func removeObservers() {
        NotificationCenter.default.removeObserver(self, name: UIApplication.didBecomeActiveNotification, object: nil)
        NotificationCenter.default.removeObserver(self, name: UIApplication.didEnterBackgroundNotification, object: nil)

    }

@objc fileprivate func applicationDidBecomeActive() {
    printLog(log: "=============applicationDidBecomeActive========")
        holdCall(onHold: false)

    }
@objc fileprivate func applicationDidInActive() {
    printLog(log: "==============applicationDidInActive============")
        holdCall(onHold: true)
   
    }

在 android 中,相同的行为会以某种方式触发在后端注册到 trackUnsubscribed 的事件

room.on('trackUnsubscribed', function (track, participant) {
            isJoin = true;
            dePopulatScreen();
            if ( $('#video-error').hasClass("display-view") ) {
                $('#video-error').removeClass('display-view');
            }
            $('#video-error #supported div img').css('display', 'none');
            document.getElementById('video-error-message').innerHTML = 'Call has been placed on hold by the patient. Please wait it will automatically reconnect shortly.'
            detachTracks([track]);
        });

如何在 ios 中实现同样的功能

【问题讨论】:

    标签: ios swift twilio


    【解决方案1】:

    为了保持通话,我们需要取消发布和发布音频和视频流

    if let participant = self.room?.localParticipant, let videoTrack = self.localVideoTrack , let audioTrack = self.localAudioTrack{
        if(onHold){
           participant.unpublishVideoTrack(videoTrack)
            participant.unpublishAudioTrack(audioTrack)
        }
        else{
           participant.publishVideoTrack(videoTrack)
            participant.publishAudioTrack(audioTrack)
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-12-07
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 2017-02-08
      • 2015-09-21
      相关资源
      最近更新 更多