iOS OpenTok 音频-视频通话在 iOS 模拟器和路由会话上禁用了视频,原因不明

iOS OpenTok audio-video call has video disabled with an undocumented reason on iOS Simulator and routed sessions

在 iOS 模拟器上测试带有路由会话的视频呼叫时,用户的视频因未记录的原因而被禁用。

在最新版本的OpenTok 2.15.3上我们可以看到视频被禁用的可能原因有:

typedef NS_ENUM(int32_t, OTSubscriberVideoEventReason) {
    OTSubscriberVideoEventPublisherPropertyChanged = 1,
    OTSubscriberVideoEventSubscriberPropertyChanged = 2,
    OTSubscriberVideoEventQualityChanged = 3
};

在 iOS 11 模拟器上,在尝试订阅后,我立即使用 OTSubscriberVideoEventReason == 2 启用视频,在使用 OTSubscriberVideoEventReason == 4 禁用视频后,我立即获得subscriberDidDisconnectFromStream 上出现以下错误:

Internal error -- WebRTC subscriber error. 
Failed to set remote offer sdp: 
Session error code: ERROR_CONTENT. 
Session error description: Failed to set remote video description send 
parameters.. 
kPCFailureSetRemoteDescription

文档建议尝试重新订阅或重新连接...重新订阅无效。此外,它只发生在模拟器上,这让我认为设置没有任何问题,但这里真正的问题是,什么是 OTSubscriberVideoEventReason == 4?

这里是 TokBox 开发者布道师。

是的,不幸的是,我们没有公开记录这个具体案例(对此感到抱歉)。我们计划在 2.16.0 版本中添加它。

调度 OTSubscriberVideoEventReason=4 的原因是订阅者流中的视频被禁用,因为该流使用模拟器不支持的视频编解码器(例如 H.264)。