1

我按照本教程使用 Swift 创建了一个 Vidyo iOS 应用程序。

但是我在以下方面遇到了应用程序崩溃:

connector = VCConnector(UnsafeMutableRawPointer(&vidyoView),
                                viewStyle: .default,
                                remoteParticipants: 4,
                                logFileFilter: UnsafePointer("warning"),
                                logFileName: UnsafePointer(""),
                                userData: 0)

以下是调试器日志:

错误:LmiFile:[系统线程]:/tmp/SDK.Release.TRINITY_4_1_20_3.build.tO3KysfAv5/source/SDK/Lmi/Os/LmiFile.c:132:LmiFileOpen_:打开文件时出错v\217\206:不允许操作

断言失败:(newVal >= 0),函数 LmiSharedPtrRefCountDecUseCount,文件 /tmp/SDK.Release.TRINITY_4_1_20_3.build.tO3KysfAv5/source/SDK/Lmi/VidyoClient/../../../SDK/Lmi/Os/ LmiSharedPtrInline.h,第 51 行。

任何人都可以帮忙吗?

4

2 回答 2

0

教程错了。传入logFileFilter:logFileName:作为常规 Swift 字符串。

connector = VCConnector(UnsafeMutableRawPointer(&vidyoView),
                                viewStyle: .default,
                                remoteParticipants: 4,
                                logFileFilter: "warning",
                                logFileName: "",
                                userData: 0)

logFileFilter:和的参数类型logFileName:const char*。您可以将 String 传递给此类型的参数,它将为您转换。

来源:将字符串传递给 const char* 参数

您应该能够将 String 直接传递给期望 const char * 的 C 函数,它将自动转换为以 null 结尾的 UTF-8 字符串

于 2018-05-14T21:28:02.637 回答
0

确保在创建连接器之前初始化包:

// Initialize package
VCConnectorPkg.vcInitialize()

// Create connector
connector = VCConnector(UnsafeMutableRawPointer(&vidyoView),
                                viewStyle: .default,
                                remoteParticipants: 4,
                                logFileFilter: "warning",
                                logFileName: "",
                                userData: 0)

这为我解决了这个问题。祝你好运!

于 2020-03-15T20:01:04.330 回答