Twilio 通话暂停 ios
Twilio call put on on hold ios
我正在尝试在用户离开视图时立即暂停 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
中实现同样的效果
为了保持通话,我们需要将音频和视频流取消发布和发布
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)
}
}
我正在尝试在用户离开视图时立即暂停 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
中实现同样的效果为了保持通话,我们需要将音频和视频流取消发布和发布
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)
}
}