自从2016年,鼓吹“互联网寒冬”的论调甚嚣尘上,2017年亦有愈演愈烈之势。但连麦直播、在线抓娃娃、直播问答、远程狼人杀等类型的项目却异军突起,成了投资人的风口,创业者的蓝海和用户的必装App,而这些方向的项目都有一个共同的特点——都依赖视频通话和全互动直播技术。
声网Agora.io是一家提供稳定,高可用,有质量保障的实时视频通话和实时全互动直播技术服务的平台,提供一个极简SDK让开发者接入SD-RTN?实时虚拟通信网,在任何App和网站都可以实现高质量的音频通话、视频通话、全互动直播。
为了跟上时代的步伐,学会使用Agora.io是很有必要的,我们首先要学会声网Agora.io的SDK在Android平台的快速集成。
环境
声网Agora.io SDK的兼容性良好,对硬件设备和软件系统的要求不高,开发环境和测试环境满足以下条件即可:
Android SDK API Level >= 16
Android Studio 2.0 或以上版本
支持语音和视频功能的真机
App 要求 Android 4.1 或以上设备
以下是我试用声网Agora.io SDK的开发环境和测试环境:
开发环境
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、分屏、窗口切换和前后摄像头切换等内容。
原文地址:http://blog.51cto.com/dongfeng9ge/2095621