Android多人视频聊天应用的开发(一)快速集成

自从2016年,鼓吹“互联网寒冬”的论调甚嚣尘上,2017年亦有愈演愈烈之势。但连麦直播、在线抓娃娃、直播问答、远程狼人杀等类型的项目却异军突起,成了投资人的风口,创业者的蓝海和用户的必装App,而这些方向的项目都有一个共同的特色——都依赖视频通话和全互动直播技术。android

 

声网Agora.io的SDK让App和网站均可以实现高质量的音频通话、视频通话、全互动直播。我试着经过该SDK实现一个多人视频通话应用。本文先分享集成的部分。程序员

 

环境网络

声网Agora.io SDK的兼容性良好,对硬件设备和软件系统的要求不高,开发环境和测试环境知足如下条件便可:app

Android SDK API Level >= 16ide

Android Studio 2.0 或以上版本测试

支持语音和视频功能的真机gradle

App 要求 Android 4.1 或以上设备网站

 

如下是我试用声网Agora.io SDK的开发环境和测试环境:ui

开发环境spa

Windows 10 家庭中文版

Java Version SE 8

Android Studio 3.2 Canary 4

 

测试环境

Samsung Nexus (Android 4.4.2 API 19)

Mi Note 3 (Android 7.1.1 API 25)

 

集成

步骤一:首先点此下载完整的SDK和官方demo

步骤二:既然咱们要把声网Agora.io集成到本身的项目里,因此没必要运行sample,咱们本身新建一个HelloAgora项目,注意必定要支持C++哦。

步骤三:把libs文件夹里的arm64-v8a、、armeabi-v7a以及x86文件夹复制粘贴到app module的libs里。若是有NDK开发的必要,则把libs->include文件夹里的两个.h头文件复制粘贴到合适位置。

步骤四:首先在app module的build.gradle文件的android代码块中添加以下代码:

sourceSets {
    main {
        jniLibs.srcDirs = ['../../../libs']
    }
}

而后在app module的build.gradle文件的android->defaultConfig代码块中添加以下代码:

ndk {
    abiFilters "armeabi-v7a", "x86"
}

接下来在app module的build.gradle文件的dependencies代码块中添加以下代码:

compile 'io.agora.rtc:full-sdk:2.0.0'

若是用复制粘贴jar的方式,那么此处添加以下代码:

compile fileTree(dir: '../../../libs', include: ['*.jar'])

若是有自定义NDK的必要,能够继续在app module的build.gradle文件的android代码块中添加以下代码:

externalNativeBuild {
    ndkBuild {
        path 'src/main/cpp/Android.mk'
    }
}

而后在app module的build.gradle文件的android->defaultConfig代码块中添加以下代码:

externalNativeBuild {
    ndkBuild {
        arguments "NDK_APPLICATION_MK:=src/main/cpp/Application.mk"
    }
}

最后sync一下,声网Agora.io的SDK就集成到项目中来了。

 

权限

SDK集成完毕后,为了保证SDK能正常运行,咱们须要在AndroidManisfest.xml 文件中声明如下权限:

<!--容许程序链接网络-->
<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.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.BLUETOOTH" />

 

这些权限都是Android开发过程当中的常见权限,有经验的程序员都会感受眼熟,WRITE_EXTERNAL_STORAGE等敏感权限适配Android 6.0之后版本的问题并不是本文关注重点,在此不作赘述。

 

混淆代码

集成SDK并声明了权限后,就该考虑混淆的问题了,咱们须要在project的proguard-rules.pro文件里添加如下代码:

-keep class io.agora.**{*;}

 

通过以上过程后,咱们已经完成了声网Agora.io SDK的快速集成,迈出了走向连麦直播、在线抓娃娃、直播问答、远程狼人杀等风口的第一步。在接下来的文章里,我将继续分享APP ID鉴权、Token鉴权、一对一视频聊天、建立群聊room、分屏、窗口切换和先后摄像头切换等内容。

相关文章
相关标签/搜索