我正在使用OpenTok
库创建演示。到目前为止,它已经创建并且可以正常工作。
现在,我想在视频通话中实现保持/暂停功能。但是我找不到直接保留通话的直接方法,或者我们可以说在两者之间暂停视频通话。
我们可以保留视频通话吗?如果是,那怎么办?
有人对此有想法吗?
我已经引用了此链接:Putting a video call on hold with OpenTok但这是针对.js
更新:1
我已经为必需的对象创建了属性:
var otSession: OTSession!
var otPublisher: OTPublisher!
var otSubscriber: OTSubscriber!
并且需要用于连接会话和放置委托方法的代码。
现在点击按钮,我要暂停视频通话,为此:
@IBAction func pauseVideo(_ sender: UIButton) {
if otPublisher != nil {
sender.isSelected = !sender.isSelected
otPublisher?.publishVideo = !(otPublisher?.publishVideo)!
}
if sender.isSelected {
self.lblPause.text = "Call paused..!!"
self.lblPause.isHidden = false
otSubscriber.view?.isHidden = true
otSubscriber.view?.backgroundColor = UIColor.black
} else {
self.lblPause.isHidden = true
otSubscriber.view?.isHidden = false
otSubscriber.view?.backgroundColor = UIColor.white
}
}
一切正常,但是从另一方面来说,他们如何知道在第一端的视频通话被搁置了?
答案 0 :(得分:0)
此处是TokBox开发人员的传播者。
OpenTok iOS SDK还允许您停止使用publishAudio
对象的publishVideo
和Publisher
属性来发布audio
和video
。创建Publisher
后,您可以随时更改这些属性。
这不一定会使Session
处于保持状态,但会停止向其他参与者发送视频和音频。您将必须创建自己的自定义逻辑,在其中显示消息或图标以指示未发布音频和视频时会话处于保留状态。
更新1(基于问题的更改):
您可以实施key value observing来查看流属性(即视频或音频)是否已更改。通过此实现,您可以查看何时有人停止或开始发布视频。有关示例实现,请参见OpentTok (iOS) How to subscribe to hasAudio stream changes。