OpenTok iOS:离开会话并重新加入后,音频消失了

时间:2019-08-01 22:28:18

标签: opentok

我正在使用一个预先存在的iOS实现,该实现使用OpenTok进行视频通话。 一方面,我们有一个Web用户,另一方面,有一个iOS用户。我现在遇到的问题是,iOS用户在离开会话并重新加入后无法听到Web用户的声音。但是,重新加入后,视频仍然可以正常工作。 作为退出视频通话过程的一部分,iOS应用将取消订阅并删除其视图,取消发布发布者,最后断开会话连接。然后,我们弹出视图控制器,以便它创建的任何对象都应该消失。为了重新加入会话,我创建了一个新的ViewController并尝试连接,然后出现音频问题。从症状来看,离开会话后似乎出现了一些故障,并且OpenTok保持了一些我忽略的内部状态。

我知道事实是iOS实施存在问题。我们有网络和Android实施方案,都可以完美运行。

试图添加一个异步等待时间,使会话和对象被破坏。

我也尝试过在委托方法中设置断点,以查看是否存在一种一致的模式可以将我带到根本原因,但是我似乎找不到任何原因。

我添加了一些日志语句以尝试判断断开连接/取消订阅/ etc是否产生错误,但是返回的错误为nil,就像操作成功完成一样。

这是我要断开连接的操作:

if let session = self.otSession {
    L.debug("Cleaning up \(self.subscriptions.count) subscriptions")
    var error: OTError? = nil
    for sub in self.subscriptions {
        sub.view?.removeFromSuperview()
        session.unsubscribe(sub, error: &error)
        if let error = error {
            L.log(error) 
        }
    }
    if self.otPublisher != nil {
        self.otPublisher!.view?.removeFromSuperview()
        session.unpublish(self.otPublisher!, error: &error)
        if let error = error {
            L.log(error) }
        }

    session.disconnect(&error)
    if let error = error {
        L.log(error) 
    }
}
self.subscriptions.removeAll()
self.otPublisher?.view?.removeFromSuperview()
self.otPublisher = nil
self.otSession = nil

这里有人与OpenTok有类似的问题吗?

0 个答案:

没有答案