Voxeet UXKit iOS
要求
- 操作系统: iOS 9.0 及以上版本
- IDE: Xcode 11+
- 语言: Swift 5+、Objective-C、React Native、Cordova
- 支持的架构: armv7、arm64、i386、x86_64
示例应用程序
在以下 GitHub 仓库 中有一个示例应用程序。 VoxeetConferenceKit 是一个基于 VoxeetSDK (https://github.com/voxeet/voxeet-ios-sdk) 的框架。
安装 iOS SDK
1. 获取您的凭证
从您的开发者账户仪表板获取您应用的消费者密钥和消费者密钥:您的开发者账户仪表板。
如果您是新手用户,您需要注册一个Voxeet开发者账户并添加一个应用。您可以使用试用账户创建一个应用。升级为付费账户以获取多个应用程序并在试用结束后继续使用Voxeet。我们将为您提供专业帮助,让您快速启动。
2. 项目设置
启用 背景模式(转到您的目标设置 -> '功能' -> '后台模式')
- 开启 '音频、AirPlay和画中画':
- 开启 '网际语音(VoIP)'
如果您想支持VoIP推送通知(在应用程序被杀死时接收来电)与CallKit,启用 '推送通知'(您需要将您的VoIP推送证书上传到Voxeet开发者门户)。
隐私 权限,在Info.plist中添加两个新键
- 隐私 - 麦克风使用描述
- 隐私 - 摄像头使用描述
3. 安装
Carthage
Carthage 是一个去中心化的依赖项管理器,它构建您的依赖项并提供给您二进制框架。
您可以使用以下命令通过Homebrew安装Carthage
$ brew update
$ brew install carthage
要使用Carthage将VoxeetConferenceKit集成到Xcode项目中,在您的Cartfile
中指定它
github "voxeet/voxeet-ios-conferencekit" ~> 1.0
运行carthage update
以构建框架,并将VoxeetConferenceKit.framework
、VoxeetSDK.framework
和WebRTC.framework
拖入您的Xcode项目(需要拖放到'已嵌入的二进制文件'中)。更多信息请访问https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos。
手动
下载最新发布版本压缩包
VoxeetConferenceKit: https://github.com/voxeet/voxeet-ios-conferencekit/releases 以及 VoxeetSDK: https://github.com/voxeet/voxeet-ios-sdk/releases
解压并拖放框架到您的项目,确保选中“根据需要复制项”与对应的目标。然后在您的目标“常规”标签中,将 VoxeetConferenceKit.framework
, VoxeetSDK.framework
和 WebRTC.framework
添加到 “嵌入的二进制文件”。
4. 依赖关系
VoxeetConferenceKit 还使用了一些外部库,如 SDWebImage,用于从网络下载和缓存图像(用户的头像)。您可以从 此链接 下载此框架或使用 Carthage(或 CocoaPods)安装。
最后,“嵌入的二进制文件”和“链接的框架和库”部分应看起来像这样
(WebRTC.framework 在此截图上缺失且 Kingfisher 已被 SDWebImage 替换)
Voxeet 会议套件使用
initialize
使用这些方法初始化 Voxeet 框架。
参数
consumerKey
字符串 - 从 您的开发者账户控制台 获取的应用的消费者密钥。consumerSecret
字符串 - 从 您的开发者账户控制台 获取的应用的消费者密钥。
代码示例
import VoxeetSDK
import VoxeetConferenceKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Voxeet SDKs initialization.
VoxeetSDK.shared.initialize(consumerKey: "YOUR_CONSUMER_KEY", consumerSecret: "YOUR_CONSUMER_SECRET")
VoxeetConferenceKit.shared.initialize()
// Example of public variables to change the conference behavior.
VoxeetSDK.shared.pushNotification.type = .none
VoxeetSDK.shared.conference.defaultBuiltInSpeaker = false
VoxeetSDK.shared.conference.defaultVideo = false
VoxeetConferenceKit.shared.appearMaximized = true
VoxeetConferenceKit.shared.telecom = false
return true
}
}
参考文献
https://github.com/voxeet/voxeet-ios-sdk#initialize-the-voxeet-sdk
connect
此方法为可选。连接会话类似于登录,但是SDK需要通过将 connectSession
设置为 false
进行初始化。如果实现了 CallKit(VoIP 推送通知),则此方法可能很有用,因为一旦会话打开,如果有邀请,则可以接收通知。
参数
user
VTUser? - 需要链接到我们服务器的一名用户。completion
((_ error: NSError?) -> Void)? - 当服务器连接序列结束时执行的块对象。此块没有返回值,并接受单个NSError
参数,表示是否成功连接到服务器。
示例
let user = VTUser(externalID: "1234", name: "Username", avatarURL: "https://voxeet.com/logo.jpg")
VoxeetSDK.shared.session.connect(user: user) { error in }
参考文献
https://github.com/voxeet/voxeet-ios-sdk#connect
断开
此方法为可选。 关闭会话就像注销一样,它将停止套接字并停止发送VoIP推送通知。
参数
completion
((_ error: NSError?) -> Void)? - 当服务器连接序列结束时执行的块对象。此块没有返回值,并接受单个NSError
参数,表示是否成功连接到服务器。
示例
VoxeetSDK.shared.session.disconnect { error in }
引用
https://github.com/voxeet/voxeet-ios-sdk#disconnect
start conference
启动会议UI。
示例
// Create a conference.
VoxeetSDK.shared.conference.create(success: { json in
guard let confID = json?["conferenceId"] as? String else { return }
// Join the created conference.
VoxeetSDK.shared.conference.join(conferenceID: confID, video: false, userInfo: nil, success: { json in
}, fail: { error in
})
}, fail: { error in
})
引用
https://github.com/voxeet/voxeet-ios-sdk#create https://github.com/voxeet/voxeet-ios-sdk#join
结束会议
结束会议UI。
例子
VoxeetSDK.shared.conference.leave { error in }
参考
https://github.com/voxeet/voxeet-ios-sdk#leave
有用的变量
默认情况下,会议显示为最大化。如果为false,则会议将显示为最小化。
VoxeetConferenceKit.shared.appearMaximized = true
如果有人挂断电话,所有人都会被踢出会议。
VoxeetConferenceKit.shared.telecom = false
CallKit声音和图像
如果CallKitSound.mp3
被覆盖,铃声将由你的mp3替换。如果IconMask.png
被覆盖,它将用你的(40x40px)图像替换默认的CallKit图像。
技术
Voxeet iOS SDK和ConferenceKit依赖于以下开源项目
- SDWebImage,提供一个支持缓存的异步图像下载器。
- Starscream,一个符合WebSocket (RFC 6455)的Swift客户端库,用于iOS和OSX。
- Alamofire,一个用Swift编写的HTTP网络库。
- SwiftyJSON,一个处理Swift中JSON数据的工具。
SDK版本
1.2.7
© Voxeet,2020