实时音视频

  • 实时音视频 > 快速入门 > Android >开发准备

    开发准备

    最近更新时间:2021-11-02 11:49:44

    本文主要介绍开发前的准备工作,包括开发环境的要求、SDK 的导入等。

    前提条件

    设备及系统要求

    • 系统要求:Android 4.3 (API 18) 及以上
    • Java 版本: Java 8+

    下载并导入实时音视频 SDK

    SDK 可通过公有 repo 下载获取。

    Repo 中主要包含 demo 示例代码、SDK jar 包,以及 SDK 依赖的动态库文件。 其中,releases 目录下是需要拷贝到您的 Android 工程的所有文件,以目前主流的 armeabi-v7a 架构为例,具体如下:

    文件名称功能大小备注
    qndroid-rtc-x.y.z.jarSDK 库834 KB必须依赖
    libqndroid_rtc.so连麦5.9 MB必须依赖
    libqndroid_beauty.so美颜452 KB不用自带美颜,可以不依赖
    libqndroid_amix.so混音343 KB不用混音功能,可以不依赖
    • 将 qndroid-rtc-x.y.z.jar 包拷贝到您的工程的 libs 目录下,最新版本可查看版本更新日志获取。
    • 将动态库拷贝到您的工程对应的目录下,例如:armeabi-v7a 目录下的 so 则拷贝到工程的 jniLibs/armeabi-v7a 目录下

    具体可以参考 SDK 包含的 demo 工程,集成后的工程示例如下:

    SDK 集成目录

    修改 build.gradle

    打开工程目录下的 build.gradle,确保已经添加了如下依赖,如下所示:

    dependencies {
        implementation files('libs/qndroid-rtc-x.y.z.jar')
    }
    

    添加对 Java8 语言功能的支持:

    android {
        ...
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }
    

    如果您使用的版本是 2.5.0+,那么为了给您提供更好的使用体验,请务必依赖如下 dns 解析库:

    dependencies {
        implementation 'com.qiniu:happy-dns:0.2.17'
    }
    

    添加混淆

    如果工程中添加了混淆,则七牛的包也需要添加混淆规则,在 proguard-rules.pro 文件下添加以下代码:

    -keep class org.webrtc.** {*;}
    -dontwarn org.webrtc.**
    -keep class com.qiniu.droid.rtc.**{*;}
    -keep interface com.qiniu.droid.rtc.**{*;}
    

    添加相关权限

    在工程的 AndroidManifest.xml 中增加如下 uses-permission 声明:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    

    在 Android 6.0 (API 23) 开始,用户需要在应用运行时授予权限,而不是在应用安装时授予,并分为正常权限和危险权限两种类型。在实时音视频 SDK 中,用户需要在进入音视频通话房间前动态申请 CAMERARECORD_AUDIOWRITE_EXTERNAL_STORAGE 权限,具体可参考 Android 官方文档

    以上内容是否对您有帮助?
  • Qvm free helper
    Close