VoxeetConferenceKit 1.2.7

VoxeetConferenceKit 1.2.7

VTCoco 维护。



 
依赖
VoxeetSDK~> 1.0
SDWebImage~> 5.0
 

  • Voxeet

Voxeet UXKit iOS

Voxeet SDK logo

要求

  • 操作系统: iOS 9.0 及以上版本
  • IDE: Xcode 11+
  • 语言: Swift 5+、Objective-C、React NativeCordova
  • 支持的架构: armv7、arm64、i386、x86_64

示例应用程序

在以下 GitHub 仓库 中有一个示例应用程序。 VoxeetConferenceKit 是一个基于 VoxeetSDK (https://github.com/voxeet/voxeet-ios-sdk) 的框架。

CallKit Conference maximized Conference minimized

安装 iOS SDK

1. 获取您的凭证

从您的开发者账户仪表板获取您应用的消费者密钥和消费者密钥:您的开发者账户仪表板

如果您是新手用户,您需要注册一个Voxeet开发者账户并添加一个应用。您可以使用试用账户创建一个应用。升级为付费账户以获取多个应用程序并在试用结束后继续使用Voxeet。我们将为您提供专业帮助,让您快速启动。

2. 项目设置

启用 背景模式(转到您的目标设置 -> '功能' -> '后台模式')

  • 开启 '音频、AirPlay和画中画':
  • 开启 '网际语音(VoIP)'

如果您想支持VoIP推送通知(在应用程序被杀死时接收来电)与CallKit,启用 '推送通知'(您需要将您的VoIP推送证书上传到Voxeet开发者门户)。

Capabilities

隐私 权限,在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.frameworkVoxeetSDK.frameworkWebRTC.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.frameworkWebRTC.framework 添加到 “嵌入的二进制文件”

4. 依赖关系

VoxeetConferenceKit 还使用了一些外部库,如 SDWebImage,用于从网络下载和缓存图像(用户的头像)。您可以从 此链接 下载此框架或使用 Carthage(或 CocoaPods)安装。

最后,“嵌入的二进制文件”和“链接的框架和库”部分应看起来像这样

“Frameworks”

(WebRTC.framework 在此截图上缺失且 Kingfisher 已被 SDWebImage 替换)

Voxeet 会议套件使用

initialize

使用这些方法初始化 Voxeet 框架。

参数

代码示例

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