VoxeetUXKit 1.7.4

VoxeetUXKit 1.7.4

Vincent JardelCorentin LarroqueVTCocoElise MarieThomas GilbertEdyta ZugajYuriy GanushevichPiotr Brzeski 维护。



 
依赖项
VoxeetSDK~> 3.0
Kingfisher~> 7.0
 

  • Voxeet

Voxeet UXKit iOS

Swift UXKit 是基于 iOS SDK 的框架。

安装 UXKit

请遵循以下说明来安装 Swift UXKit。

要求

在安装 Swift UXKit 之前,请确保满足最低的硬件和软件要求。

  • 操作系统:iOS 12.0 及以上
  • 集成开发环境Xcode 13+
  • 语言:Swift 5.5.2
  • 支持的架构:arm64, x86_64

在开始之前

在安装之前,获取您的消费者密钥消费者密钥

  1. 选择Dolby.io页面右上角的登录链接。使用您的电子邮件和密码登录。
  2. 点击网站右上角的仪表板链接。
  3. 从左侧菜单中的应用分类中选择您的应用。
  4. 从应用于应用下的下拉菜单中选择API密钥分类。
  5. 通信API部分,您可以访问您的消费者密钥消费者密钥

方法

  1. 打开Xcode,转到目标设置能力后台模式以设置项目和启用适当的后台模式。
  2. 启用音频、AirPlay和画中画以及VoIP选项。

注意:要启用带有CallKit的VoIP推送通知,请启用推送通知并将您的VoIP推送证书上传到开发者门户。有关更多信息,请阅读此管理推送通知手册页面。

  1. 将以下密钥添加到Info.plist文件中,以启用所需的权限

    • 隐私:麦克风使用描述
    • 隐私:相机使用描述
  2. 使用Swift包管理器CarthageCocoaPods或手动安装SDK。

使用Swift包管理器安装SDK

Swift包管理器是一个用于自动化下载、编译和链接依赖项过程的工具。Swift包管理器支持UXKit 1.6.5和更高版本。

  1. 选择文件添加包…以添加包依赖项。
  2. 在打开的窗口中,找到搜索框并指定SDK仓库的URL:https://github.com/voxeet/voxeet-uxkit-ios.git
  3. 从结果列表中选择VoxeetUXKit。
  4. 检查VoxeetUXKit包是否列在“包依赖项”标签页中。
  5. 检查“框架、库和嵌入内容”分类是否包含VoxeetUXKit库。

有关更多信息,请参阅Apple开发者文档中的附加说明

使用Carthage安装SDK

  • 使用以下Homebrew命令安装Carthage
brew update
brew install carthage
  • Cartfile中指定UXKit版本,将其集成到Xcode项目中
github "voxeet/voxeet-uxkit-ios" ~> 1.0
  • 运行carthage update --use-xcframeworks --platform iOS构建框架,并将VoxeetUXKit.xcframeworkVoxeetSDK.xcframeworkdvclient.xcframeworkdvdnr.xcframeworkWebRTC.xcframeworkKingfisher.xcframework拖放到Xcode项目的嵌入的二进制文件类别。

注意:有关使用Carthage构建特定平台捆绑包的更多信息,请参阅Carthage文档

使用CocoaPods安装SDK

  • 使用以下命令安装CocoaPods
sudo gem install cocoapods
  • Podfile中指定UXKit版本,将其集成到Xcode项目中
pod 'VoxeetUXKit', '~> 1.0'
  • 运行pod install构建依赖项。

手动安装SDK

  • 使用以下链接下载最新版本的UXKit和SDK压缩文件

  • 解压下载的文件,并将框架拖放到Xcode项目中。

  • 使用合适的目标选择如有必要则复制项目选项。在你的目标通用选项卡中,将VoxeetUXKit.xcframeworkVoxeetSDK.xcframeworkdvclient.xcframeworkdvdnr.xcframeworkWebRTC.xcframework添加到嵌入的二进制文件类别。

  • GitHub下载Kingfisher库,并手动安装框架或使用Carthage或CocoaPods进行安装。

安装完成后,检查Kingfisher库是否包含在库列表中。如果您是手动安装库或使用Carthage,请检查Xcode项目中“框架、库和嵌入内容”类别中是否有提及Kingfisher.xcframework库。如果您使用CocoaPods安装库,请检查客户端xcworkspace中的“Pods”项目是否包含Kingfisher库。

配置UXKit

Swift UXKit提供了几个额外参数,允许进行额外配置。

  • 使用appearMaximized参数来最大化或最小化会议。默认情况下,会议已最大化。如果您想要最小化会议,请将值更改为false。
VoxeetUXKit.shared.appearMaximized = true
  • 使用telecom参数来更改应用行为。如果参数值设置为true,会议将类似于电话呼叫,参与者离开通话将触发通话结束。如果参数值设置为false,参与者可以在不结束通话的情况下离开通话。
VoxeetUXKit.shared.telecom = false
  • 如果您想使用CallKit,可以配置默认的CallKit设置。CallKit提供默认的铃声和图像图标,您可以进行更改。默认情况下,SDK使用CallKitSound.mp3作为CallKit通知的铃声。如果您想使用不同的铃声,请将CallKitSound.mp3文件替换为其他mp3文件。如果您想使用不同的图像图标,请将默认的IconMask.png图像替换为另一张图片(40px x 40px)。

使用UXKit

以下步骤解释了如何初始化iOS SDK、打开会话以及创建和加入会议。如果您想了解更多关于使用iOS SDK的信息,请参阅入门部分或查看参考文档。

  1. 使用initialize方法初始化Voxeet SDK。
import VoxeetSDK
import VoxeetUXKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        // Voxeet SDK initialization.
        VoxeetSDK.shared.initialize(consumerKey: "YOUR_CONSUMER_KEY", consumerSecret: "YOUR_CONSUMER_SECRET")
        VoxeetUXKit.shared.initialize()

        // Example of public variables to change the conference behavior.
        VoxeetSDK.shared.pushNotification.push.type = .none
        VoxeetSDK.shared.conference.defaultBuiltInSpeaker = false
        VoxeetSDK.shared.conference.defaultVideo = false
        VoxeetUXKit.shared.appearMaximized = true
        VoxeetUXKit.shared.telecom = false

        return true
    }
}

注意:有关将Dolby.io通信客户端SDK集成到应用中的更多信息,请参阅参考文档或初始化文档。

  1. 打开一个新的会话。
let info = VTParticipantInfo(externalID: "1234", name: "Username", avatarURL: "https://www.gravatar.com/avatar/1234")
VoxeetSDK.shared.session.open(info: info) { error in }

注意:SDK邀请过程需要邀请者使用open方法以接收会议邀请。如果您使用CallKit,即使没有打开会话,您也可以接收会议邀请。

  1. 调用 createjoin 方法来创建和加入会议。
// Create a conference (with a custom conference alias).
let options = VTConferenceOptions()
options.alias = conferenceAlias

VoxeetSDK.shared.conference.create(options: options, success: { conference in
    // Join the created conference.
    let joinOptions = VTJoinOptions()
    joinOptions.constraints.video = false

    VoxeetSDK.shared.conference.join(conference: conference, options: joinOptions, success: { conference in
        // Success
    }, fail: { error in
        // Error
    })
}, fail: { error in
    // Error
})

注意:关于加入会议的更多信息,请参阅 会议 文档。

  1. 调用 leave 方法来离开会议。
VoxeetSDK.shared.conference.leave { error in }
  1. 调用 close 方法来关闭当前会话。该方法将关闭 WebSocket 并不允许发送 VoIP 推送通知。
VoxeetSDK.shared.session.close { error in }

开源项目

Voxeet iOS SDK 和 UXKit 依赖于以下开源项目

  • Kingfisher,提供支持缓存的异步图片下载。
  • Starscream,一个符合 WebSocket (RFC 6455) 的客户端库。
  • Alamofire,一个 HTTP 网络库。
  • SwiftyJSON,用于处理 JSON 数据的工具。