内部错误 - WebRTC发布者错误&内部错误 - WebRTC订户错误

时间:2014-07-16 20:05:11

标签: android webrtc opentok

我们正在尝试使用OpenTok将Voip(无视频)添加到我们的Android应用程序中。当第三个用户加入会话以及用户离开并重新加入会话时,我们会看到问题。

实施例: 会话已创建。 User1和User2加入..两者都可以听到对方说话。当User3加入时,我们会收到多个错误(如下所示)。结果,有时一个用户可以听到但不能说话,有时一个用户将无法听到或说话......或者两者的组合。谁得到错误似乎是随机的,但似乎是谁得到错误与谁可以说话/听到之间的相关性。


SubscriberListener onError()

消息:内部错误 - WebRTC发布者错误。

errorName:PublisherWebRTCError

errorCode:1610


SubscriberListener onError()

消息:内部错误 - WebRTC订户错误。

errorName:SubscriberWebRTCError

errorCode:1600


设备: 所有Nexus 7都运行4.4.2

OpenTok Android SDK版本: 2.2

2 个答案:

答案 0 :(得分:0)

你的代码可能有些东西。由于您没有发布任何代码,我将尝试概括。

当第一个用户加入时,将使用流对象参数调用Session.SessionListener' s onStreamReceived。要订阅该流,请致电 subscriber = session.subscribe(stream..)

要订阅多个用户,您可能希望每次调用session.subscribe方法时都保留一组订阅者对象。

如果这没有帮助,您可能处于网格p2p会话中。在某些网络条件下(防火墙或路由器配置),webRTC将对网格进行故障转移。最安全的路线是在创建会话时使用mediaRouted标志,或确保所有测试设备都在同一个wifi网络上:https://github.com/opentok/opentok-node#creating-sessions

答案 1 :(得分:0)

我在iOS上看到同样的问题。以下是我们订阅的方式

- (void)session:(OTSession *)session streamCreated:(OTStream *)stream
{
    NSLog(@"%s", __PRETTY_FUNCTION__);

    if (![self.streamID isEqualToString:stream.streamId])
    {
        self.tokBoxSubcriber = [[OTSubscriber alloc] initWithStream:stream delegate:self];
        self.tokBoxSubcriber.subscribeToAudio = YES;
        self.tokBoxSubcriber.subscribeToVideo = NO;

        [self.tokBoxSession subscribe:self.tokBoxSubcriber error:nil];
    }
 }

以下是我们的发布方式

- (void)sessionDidConnect:(OTSession *)session
{
    self.tokBoxPublisher = [[OTPublisher alloc] initWithDelegate:self name:@"publisher"];
    self.tokBoxPublisher.publishAudio = YES;
    self.tokBoxPublisher.publishVideo = NO;

    OTError *error;
    [self.tokBoxSession publish:self.tokBoxPublisher error:&error];

    if (error)
    {
        NSLog(@"Error = %@", error);
    }

    [self.delegate connectedToVoIP:self];
}