我们可以在iOS中使用Toxbox / OpenTok暂停视频通话吗

时间:2018-10-23 11:47:25

标签: ios video-streaming opentok

我正在使用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
    }
}

一切正常,但是从另一方面来说,他们如何知道在第一端的视频通话被搁置了?

如果一端被搁置,那么另一端也必须隐藏视频视图并将其变黑。另一端可能是管理面板或移动应用程序。 enter image description here

1 个答案:

答案 0 :(得分:0)

此处是TokBox开发人员的传播者。

OpenTok iOS SDK还允许您停止使用publishAudio对象的publishVideoPublisher属性来发布audiovideo。创建Publisher后,您可以随时更改这些属性。

这不一定会使Session处于保持状态,但会停止向其他参与者发送视频和音频。您将必须创建自己的自定义逻辑,在其中显示消息或图标以指示未发布音频和视频时会话处于保留状态。

更新1(基于问题的更改):

您可以实施key value observing来查看流属性(即视频或音频)是否已更改。通过此实现,您可以查看何时有人停止或开始发布视频。有关示例实现,请参见OpentTok (iOS) How to subscribe to hasAudio stream changes