本文分享一个用于演示如何基于 Zego Express SDK 快速实现一对一视频通话示例 Demo,代码简单易懂。 Demo 名称 EasyExample。
视频通话DEMO预览图
DEMO代码下载
iOS:https://storage.zego.im/sdk-doc/code-store/yeMkQTGFO9BeoL_SfOx7Z-ExpressSample_iOS.zip
Android:https://storage.zego.im/sdk-doc/code-store/izvs6sQPPBiLxuUssTTqk-ExpressSample_Android.zip
参考文档
ZEGO easy example
ZEGO 为开发者提供了语聊/直播场景的示例源码,您可以参考以下文档快速运行源码,体验相关服务。
快速开始
前提条件
- Android Studio Bumblebee 或以上版本。
- Android 5.1 或以上版本,且支持音视频的 Android 设备或模拟器(推荐使用真机),如果是真机,请开启“允许调试”选项。
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 AppSign,详情请参考 控制台 – 项目管理 中的“项目信息”。
修改项目配置
- 拷贝示例源码到本地。
- 示例源码中缺少 SDK 初始化所需的 “AppID” 和 “AppSign”,请使用 ZEGO 控制台获取到的 AppID 和 AppSign 正确填写,否则示例源码无法正常运行。
开始运行
- 将 Android 设备连接到您的开发电脑。
- 打开 Android Studio,单击上方的 “Running Devices” 选项框,选择该 Android 设备(或者模拟器)。
- 单击 Run 按钮,编译和运行示例源码,体验相关服务。
集成 SDK
引入 SDK
在 setting.gradle
文件中,添加 maven。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://www.jitpack.io' } // <- Add this line
}
}
导入源码模块
- 在项目中,导入
:zegoexpress
模块。
2. 进入到 “app” 目录,打开 “build.gradle” 文件。在 “dependencies” 节点下添加如下代码:
```groovy
dependencies{
implementation project(':zegoexpress')
}
```
实现流程
API 接口调用顺序为:createEngine -> joinRoom -> setLocalVideoView/setRemoteVideoView -> leaveRoom。
1 初始化引擎
使用相关功能前,首先需要先初始化 SDK。我们建议您在应用启动时,执行此操作,示例如下:
ExpressManager.getInstance().createEngine(getApplication(), AppCenter.appID);
2 进入房间
当您想要通过音视频与其他人互动时,需要先调用 joinRoom
接口。请您根据自己的业务场景,设置相关选项:
- 音频通话:[.autoPlayVideo, .autoPlayAudio, .publishLocalAudio, .publishLocalVideo]
- 直播间:
- 主播:[.autoPlayVideo, .autoPlayAudio, .publishLocalAudio, .publishLocalVideo]
- 观众端:[.autoPlayVideo, .autoPlayAudio]
- 语聊房:
- 主播:[.autoPlayAudio, .publishLocalAudio]
- 观众端:[.autoPlayAudio]
以下是 “音频通话” 的示例代码:
private void joinRoom(Callback callback) {
String username = binding.username.getText().toString();
String roomid = binding.roomid.getText().toString();
String userID = System.currentTimeMillis() + "";
ZegoUser user = new ZegoUser(userID, username);
String token = ExpressManager.generateToken(userID, AppCenter.appID, AppCenter.serverSecret);
int mediaOptions = ZegoMediaOptions.autoPlayAudio | ZegoMediaOptions.autoPlayVideo |
ZegoMediaOptions.publishLocalAudio | ZegoMediaOptions.publishLocalVideo;
ExpressManager.getInstance().joinRoom(roomid, user, token, mediaOptions, callback);
}
3 设置视频 View
如果您想要使用视频通话功能,需要设置一个 View,用于播放视频。
- 调用
setLocalVideoView
接口,设置本地视频窗口。 - 调用
setRemoteVideoView
接口,设置远端视频窗口。
setLocalVideoView:
ExpressManager.getInstance().setLocalVideoView(binding.localTexture);
setLocalVideoView:
public void onRoomUserUpdate(String roomID, ZegoUpdateType updateType, ArrayList<ZegoUser> userList) {
if (updateType == ZegoUpdateType.ADD) {
for (int i = 0; i < userList.size(); i++) {
ZegoUser user = userList.get(i);
TextureView remoteTexture = binding.remoteTexture;
ExpressManager.getInstance().setRemoteVideoView(user.userID, remoteTexture);
}
} else {
}
}
4 离开房间
用户需要离开房间时,需要调用 leaveroom
接口。
ExpressManager.getInstance().leaveRoom();
本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/yinshipin/23317.html