一对一视频通话和多人视频通话示例 Demo

本文分享一个用于演示如何基于 Zego Express SDK 快速实现一对一视频通话示例 Demo,代码简单易懂。 Demo 名称 EasyExample。

视频通话DEMO预览图

一对一视频通话和多人视频通话示例 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,详情请参考 控制台 – 项目管理 中的“项目信息”。

修改项目配置

  1. 拷贝示例源码到本地。
  2. 示例源码中缺少 SDK 初始化所需的 “AppID” 和 “AppSign”,请使用 ZEGO 控制台获取到的 AppID 和 AppSign 正确填写,否则示例源码无法正常运行。
16496772462635.png

开始运行

  1. 将 Android 设备连接到您的开发电脑。
  2. 打开 Android Studio,单击上方的 “Running Devices” 选项框,选择该 Android 设备(或者模拟器)。
  3. 单击 Run 按钮,编译和运行示例源码,体验相关服务。

集成 SDK

引入 SDK

setting.gradle 文件中,添加 maven。

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { url 'https://www.jitpack.io' } // <- Add this line
    }
}

导入源码模块

  1. 在项目中,导入 :zegoexpress 模块。
一对一视频通话和多人视频通话示例 Demo

2. 进入到 “app” 目录,打开 “build.gradle” 文件。在 “dependencies” 节点下添加如下代码:

一对一视频通话和多人视频通话示例 Demo
```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

(1)

相关推荐

发表回复

登录后才能评论