你可以通过一个简单的 示例 来快速了解 WilddogVideoCall SDK 的用法。
环境准备
- 支持 Xcode 7.0 及以上版本
- 支持 iOS 8.0 及以上版本
1. 创建应用
1.1 创建野狗应用
在控制面板中创建野狗应用。
1.2 配置应用
- 在
身份认证
标签页中,选择登录方式
标签,开启匿名登录
功能(或者选择其他登录方式,例如:QQ登录
、邮箱登录
等);
- 在
实时视频通话
标签页中,点击开启视频通话
按钮。
2. 使用 CocoaPods 安装 SDK
通过 Cocoapods 安装 WilddogVideoCall SDK 以及其依赖的 WilddogAuth SDK。
- 在 Xcode 中创建一个工程,并在 Terminal 中用
cd
命令进入到工程所在文件夹内,执行pod init
命令; - 打开生成的
Podfile
文件,在第一行声明开发平台和版本(如 iOS 8.0),并在随后写入要引入的库:
platform :ios, '8.0' |
- 保存
Podfile
,并执行pod install
命令,将上述依赖安装到你的工程。 - 双击生成的
your-project-name.xcworkspace
文件打开工程。
3. 配置 iOS 权限
在 info.plist
文件中添加两个字段以获取相机和麦克风的访问权限:
Key | Type | Value |
---|---|---|
Privacy - Camera Usage Description | String | Your Description |
Privacy - Microphone Usage Description | String | Your Description |
4. 初始化 SDK
4.1 初始化 WilddogAuth SDK
//初始化 Auth SDK |
4.2 初始化 WilddogVideoCall SDK
使用 WilddogAuth SDK 进行身份认证,身份认证成功后,初始化 WilddogVideoCall SDK。
[[WDGAuth auth] signOut:nil]; |
提示:
VideoAppId 为应用实时视频通话-配置
标签页中的 VideoAppID 字段值,请勿与应用的 AppID 混淆。
VideoAppID 为 wd 开头的随机字符串,例如:wd1234567890abcdef。
5. 配置一对一视频通话
使用 +[WDGVideoCall sharedInstance]
方法获取 WDGVideoCall 单例,设置代理 <WDGVideoCallDelegate> 用于监听通话请求:
[[WDGVideoCall sharedInstance].delegate = self; |
开始一对一视频通话之前,使用 +[WDGLocalStream localStreamWithOptions:]
方法创建本地媒体流。
WDGLocalStreamOptions *localStreamOptions = [[WDGLocalStreamOptions alloc] init]; |
6. 开始一对一视频通话
使用 WilddogAuth 登录成功后,用户会获得唯一的 uid
,在 WilddogVideoCall SDK 中,使用 uid
作为用户的身份标识。
6.1 邀请一对一视频通话
使用 -[WDGVideoCall callWithUid:localStream:data:]
来发起通话请求:
self.conversation = [self.video callWithUid:@"remote-uid" localStream:self.localStream data:@"custom-data"; |
6.2 接受一对一视频通话
被邀请的用户通过 WDGVideoCall 代理的 -[WDGVideoCallDelegate wilddogVideoCall:didReceiveCallWithConversation:data:]
方法收到 WDGConversation 实例,使用 -[WDGConversation acceptWithLocalStream:]
接收一对一视频通话:
- (void)wilddogVideoCall:(WDGVideoCall *)videoCall didReceiveCallWithConversation:(WDGConversation *)conversation data:(NSString *)data { |
6.3 播放媒体流
一对一视频通话链接成功后,通话双方会通过 Conversation 代理的 -[WDGConversation conversation:didReceiveStream:]
方法收到 WDGRemoteStream 实例,使用 -[WDGRemoteStream attach:]
方法播放远端媒体流:
- (void)conversation:(WDGConversation *)conversation didReceiveStream:(WDGRemoteStream *)remoteStream { |