title: 快速入门

你可以通过一个简单的 示例 来快速了解 WilddogVideoCall SDK 的用法。

环境准备

  • 支持 Xcode 7.0 及以上版本
  • 支持 iOS 8.0 及以上版本

1. 创建应用

1.1 创建野狗应用

在控制面板中创建野狗应用。

video_quickstart_create

1.2 配置应用

  • 身份认证 标签页中,选择 登录方式 标签,开启 匿名登录 功能(或者选择其他登录方式,例如:QQ登录邮箱登录 等);

video_quickstart_openanonymous

  • 实时视频通话 标签页中,点击 开启视频通话 按钮。

video_quickstart_openVideo

2. 使用 CocoaPods 安装 SDK

通过 Cocoapods 安装 WilddogVideoCall SDK 以及其依赖的 WilddogAuth SDK。

  • 在 Xcode 中创建一个工程,并在 Terminal 中用 cd 命令进入到工程所在文件夹内,执行 pod init 命令;
  • 打开生成的 Podfile 文件,在第一行声明开发平台和版本(如 iOS 8.0),并在随后写入要引入的库:
  1. platform :ios, '8.0'
  2. target 'your-target-name' do
  3. pod 'WilddogVideoCall'
  4. end
  • 保存 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

  1. //初始化 Auth SDK
  2. NSString *appID = @"your-appid";
  3. WDGOptions *options = [[WDGOptions alloc] initWithSyncURL:[NSString stringWithFormat:@"https://%@.wilddogio.com", appID]];
  4. [WDGApp configureWithOptions:options];

4.2 初始化 WilddogVideoCall SDK

使用 WilddogAuth SDK 进行身份认证,身份认证成功后,初始化 WilddogVideoCall SDK。

  1. [[WDGAuth auth] signOut:nil];
  2. [[WDGAuth auth] signInAnonymouslyWithCompletion:^(WDGUser *user, NSError *error) {
  3. if (!error) {
  4. // 获取 token
  5. [user getTokenWithCompletion:^(NSString * _Nullable idToken, NSError * _Nullable error) {
  6. // 配置 Video Initializer
  7. [[WDGVideoInitializer sharedInstance] configureWithVideoAppId:appID token:idToken];
  8. }];
  9. }
  10. }];

提示:

VideoAppId 为应用 实时视频通话-配置 标签页中的 VideoAppID 字段值,请勿与应用的 AppID 混淆。 VideoAppID 为 wd 开头的随机字符串,例如:wd1234567890abcdef。

5. 配置一对一视频通话

使用 +[WDGVideoCall sharedInstance] 方法获取 WDGVideoCall 单例,设置代理 <WDGVideoCallDelegate> 用于监听通话请求:

  1. [[WDGVideoCall sharedInstance].delegate = self;

开始一对一视频通话之前,使用 +[WDGLocalStream localStreamWithOptions:] 方法创建本地媒体流。

  1. WDGLocalStreamOptions *localStreamOptions = [[WDGLocalStreamOptions alloc] init];
  2. localStreamOptions.shouldCaptureAudio = YES;
  3. localStreamOptions.dimension = WDGVideoDimensions360p;
  4. self.localStream = [WDGLocalStream localStreamWithOptions:localStreamOptions];

6. 开始一对一视频通话

使用 WilddogAuth 登录成功后,用户会获得唯一的 uid,在 WilddogVideoCall SDK 中,使用 uid 作为用户的身份标识。

6.1 邀请一对一视频通话

使用 -[WDGVideoCall callWithUid:localStream:data:] 来发起通话请求:

  1. self.conversation = [self.video callWithUid:@"remote-uid" localStream:self.localStream data:@"custom-data";
  2. self.conversation.delegate = self;

6.2 接受一对一视频通话

被邀请的用户通过 WDGVideoCall 代理的 -[WDGVideoCallDelegate wilddogVideoCall:didReceiveCallWithConversation:data:] 方法收到 WDGConversation 实例,使用 -[WDGConversation acceptWithLocalStream:] 接收一对一视频通话:

  1. - (void)wilddogVideoCall:(WDGVideoCall *)videoCall didReceiveCallWithConversation:(WDGConversation *)conversation data:(NSString *)data {
  2. [conversation acceptWithLocalStream:self.localStream];
  3. conversation.delegate = self;
  4. }

6.3 播放媒体流

一对一视频通话链接成功后,通话双方会通过 Conversation 代理的 -[WDGConversation conversation:didReceiveStream:] 方法收到 WDGRemoteStream 实例,使用 -[WDGRemoteStream attach:] 方法播放远端媒体流:

  1. - (void)conversation:(WDGConversation *)conversation didReceiveStream:(WDGRemoteStream *)remoteStream {
  2. [remoteStream attach:self.remoteVideoView];
  3. }

7. 更多应用