Android 屏幕共享SDK如何集成

本文分享在Android端集成即构屏幕共享SDK教程。即构屏幕共享SDK可实现以下共享场景:

  • 屏幕共享:支持对单个或多个屏幕进行完整共享,多屏共享可随意快速切换。
  • 区域共享:支持圈定屏幕任意区域进行共享,避免不必要信息的流出。
  • 窗口共享:支持对单个程序窗口进行共享,并自动过滤非窗口内容。
  • 窗口内区域共享:可圈定目标窗口的任意区域进行共享,并支持自动过滤区域外内容。
  • 多窗口共享:支持同时共享两个窗口,需要多窗口配合场景下可更高效地进行演示。
  • 窗口缩略图:在屏幕、窗口共享时,支持窗口缩略图辅助进行快速选择 。

集成屏幕共享SDK步骤

准备环境

在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:

  • Android Studio 2020.3.1 或以上版本。
  • Android SDK 25、Android SDK Build-Tools 25.0.2、Android SDK Platform-Tools 25.x.x 或以上版本。
  • Android 4.4 或以上版本,且支持音视频的 Android 设备。
  • Android 设备已经连接到 Internet。

集成 SDK

2.1 (可选)新建项目

  1. 打开 Android Studio,选择 “File > New > New Project” 菜单。 Android 屏幕共享SDK如何集成
  2. 填写项目名及项目存储路径。 Android 屏幕共享SDK如何集成
  3. 其它按照默认设置,单击 “Next”,最后单击 “Finish” 完成新工程创建。

2.2 导入 SDK

目前支持的平台架构包括:armeabi-v7a、arm64-v8a、x86、x86_64。

开发者可通过以下任意一种方式实现集成 SDK。

方式一:使用 JitPack 自动集成 SDK

  1. 进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码。
...
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { url 'https://jitpack.io' }
        google()
        mavenCentral()
    }
}

若您的 Android Gradle Plugin 版本低于 v7.1.0,请按照如下方式操作:

进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码。

...
allprojects {
    repositories {
        maven { url 'https://www.jitpack.io' }
        google()
        mavenCentral()
    }
}

2. 进入 “app” 目录,打开 “build.gradle” 文件,在 “dependencies” 中添加 implementation 'com.github.zegolibrary:express-video:3.+',这样能获取到最新的版本,如果需要下载指定版本,请从 https://jitpack.io/#zegolibrary/express-video 查询具体版本号,并将 3.+ 修改为指定的版本号。

...
dependencies {
    ...
    implementation 'com.github.zegolibrary:express-video:3.+'
}

方式二:复制 SDK 文件手动集成

  1. 请参考 下载 SDK 包 ,下载最新版本的 SDK。
  2. 解压 SDK 至项目目录,如 “app/libs”。
Android 屏幕共享SDK如何集成

3. 添加 SDK 引用,进入 “app” 目录,打开 “build.gradle” 文件。

  1. 在 “defaultConfig” 节点添加 “ndk” 节点,指定支持的架构。 Android 屏幕共享SDK如何集成
ndk {
    abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}

根据实际情况决定要支持的架构。通常在发布 App 时只需要保留 “armeabi-v7a” 和 “arm64-v8a” 即可,可以减少 APK 包大小。

在 “android” 节点添加 “sourceSets” 节点,指定 “libs” 所在目录。 示例代码中 “libs” 目录仅为举例,开发者可根据实际路径填写。

Android 屏幕共享SDK如何集成
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

在 “dependencies” 节点引入 “libs” 下所有的 jar。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ......
}

设置权限

根据实际应用需要,设置应用所需权限。

进入 “app/src/main” 目录,打开 “AndroidManifest.xml” 文件,添加权限。

根据实际应用需要,设置应用所需权限。

进入 “app/src/main” 目录,打开 “AndroidManifest.xml” 文件,添加权限。

<!-- SDK 必须使用的权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<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.BLUETOOTH" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<!-- App 需要使用的部分权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
String[] permissionNeeded = {
    "android.permission.CAMERA",
    "android.permission.RECORD_AUDIO"};

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (ContextCompat.checkSelfPermission(this, "android.permission.CAMERA") != PackageManager.PERMISSION_GRANTED ||
        ContextCompat.checkSelfPermission(this, "android.permission.RECORD_AUDIO") != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(permissionNeeded, 101);
    }
}

防止混淆代码

在 “proguard-rules.pro” 文件中,为 SDK 添加 -keep 类的配置,防止混淆 SDK 公共类名称。

-keep class **.zego.**{*;}

本文来自作者投稿,如需转载,请注明出处:实时互动网https://www.nxrte.com/jishu/9558.html

(0)

相关推荐

发表回复

登录后才能评论