快速入门 编辑文档

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


环境准备



  • 支持 Android Studio 1.4 以上

  • 支持 JDK 7.0 以上版本

  • 支持 Android 手机系统 4.1 以上,即 Android SDK 16 以上版本


1. 创建应用

1.1 创建野狗应用

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

1.2 配置应用

  • 1 在 身份认证 标签页中,选择 登录方式 标签,开启 匿名登录 功能(或者选择其他登录方式,例如:QQ登录邮箱登录 等);
  • 2 在 实时视频通话 标签页中,点击 开启视频通话 按钮。

2. 安装 SDK

2.1 安装 WilddogVideoRoom SDK

使用 Gradle 安装 WilddogVideoRoom SDK

dependencies {
compile 'com.wilddog.client:wilddog-video-room-android:2.1.2'
}

2.2 安装 WilddogAuth SDK

Token(身份认证令牌)是用户在 WilddogVideoRoom SDK 中的唯一身份标识,用于识别用户身份并控制访问权限。
WilddogVideoRoom SDK 使用 WilddogAuth SDK 获取合法的 TOKEN。

使用 Gradle 安装 WilddogAuth SDK

dependencies {
compile 'com.wilddog.client:wilddog-auth-android:2.0.7'
}

如果出现文件重复导致的编译错误,可以选择在build.grade中添加packagingOptions:

android {
...
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/notice'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license'
exclude 'META-INF/license.txt'
}
}

3. 配置 Android 权限

在 AndroidMainfest.xml 文件中添加:

<!--网络请求权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--麦克风权限-->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

4. 初始化 SDK

4.1 初始化 WilddogAuth SDK

//初始化 Auth SDK
WilddogOptions.Builder builder = new WilddogOptions.Builder().setSyncUrl("http://" + APP_ID + ".wilddogio.com");
WilddogOptions options = builder.build();
WilddogApp.initializeApp(LoginActivity.this, options);

4.2 初始化 WilddogVideoRoom SDK

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

//使用匿名登录方式进行身份认证
WilddogAuth.getInstance().signInAnonymously().addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> task) {
if (task.isSuccessful()) {
WilddogUser user = task.getResult().getWilddogUser();
String token = user.getToken(false).getResult().getToken();
//初始化 Room SDK
WilddogVideoInitializer.initialize(this.getApplicationContext(),VIDEO_APP_ID,token);
} else {
Toast.makeText(context, "登录失败", Toast.LENGTH_SHORT).show();
}
}
});

提示:


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

5. 加入 Room

创建 WilddogRoom 实例并加入到 Room 中。

WilddogRoom.Listener listener = new WilddogRoom.Listener() {
//Room 回调方法...
}
//room_id 由客户端生成的随机字符串
room = new WilddogRoom(room_id, listener);
room.connect();

提示:


在发布/订阅媒体流之前必须先连接到某个 Room。

6. 发布/订阅媒体流

本地客户端会触发 onConnected() 事件通知用户已成功加入 Room 。
加入后即可发布或订阅当前 Room 中的媒体流。

发布本地媒体流

使用 LocalStream.create() 方法创建本地媒体流。

LocalStreamOptions options = new LocalStreamOptions.Builder().build();
localStream = LocalStream.create(options);

使用 publish() 方法发布本地媒体流。

@Override
public void onConnected(WilddogRoom wilddogRoom) {
wilddogRoom.publish(localStream);
}

订阅媒体流

SDK 通过 onStreamAdded 事件通知用户当前 Room 中已发布的媒体流,可以根据需要订阅感兴趣的媒体流。

@Override
public void onStreamAdded(WilddogRoom wilddogRoom, RoomStream roomStream) {
long streamId = roomStream.getStreamId();
wilddogRoom.subscribe(roomStream);
}

订阅成功后会触发本地客户端 onStreamReceived 事件返回远端媒体流。

使用 attach() 方法播放远端媒体流

@Override
public void onStreamReceived(WilddogRoom wilddogRoom, RoomStream roomStream) {
roomStream.attach(wvvBig);
}

提示:


发布媒体流需要在 WilddogRoom.Listener 的 onConnected 回调方法被触发后进行。

7. 更多使用

野狗新手?
立即注册,为你提供安全可靠的实时通信云服务。
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题