禁用本地视频轨道导致 TwilioVideo 崩溃

Disabling local video track causes crash in TwilioVideo

我正在使用 TwilioVideo 进行互联网通话。基于他们的example project,我能够毫无问题地实施呼叫。现在我正在尝试支持禁用视频。

根据示例代码,我预计这会成功:

localVideoTrack?.isEnabled = false

其中 localVideoTrack 是使用

创建的 TVILocalVideoTrack 的一个实例
let camera = TVICameraCapturer(source: .frontCamera, delegate: self)
localVideoTrack = TVILocalVideoTrack.init(capturer: camera!)

我使用与 TVILocalAudioTrack 基本相同的方法来使麦克风静音和取消静音,效果非常好。

但是,当我调用视频时:

localVideoTrack?.isEnabled = false

我崩溃了:

2018-09-25 17:58:47.270895+0200 App[714:101541] -[TVIRTCI420Buffer coreVideoFrameBuffer]: unrecognized selector sent to instance 0x280d8ce00
2018-09-25 17:58:47.289063+0200 App[714:101541] Encountered an uncaught exception. All Mixpanel instances were archived.
2018-09-25 17:58:47.289128+0200 App[714:101541] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TVIRTCI420Buffer coreVideoFrameBuffer]: unrecognized selector sent to instance 0x280d8ce00'
*** First throw call stack:
(0x18f53bef8 0x18e709a40 0x18f453154 0x18f541810 0x18f5434bc 0x1043b754c 0x1043b6cac 0x1043f4524 0x10460e358 0x10461ed0c 0x104431f58 0x104433d18 0x10443bf24 0x109068de4 0x109070e88 0x109071b7c 0x10907bc18 0x18f1560f0 0x18f158d00)
libc++abi.dylib: terminating with uncaught exception of type NSException

知道为什么会这样吗?

该问题是由 Twilio Video SDK 在 2.3.0 版中引入的错误引起的,并在 2.5.1 中得到解决 - 有关详细信息,请参阅 its GitHub issue

如果您遇到同样的问题,并且您的版本 >= 2.3.0 但 <= 2.5.0,只需更新到 >= 2.5.1