Android多人視頻聊天應用的開發(一)快速集成

自從2016年,鼓吹“互聯網寒冬”的論調甚囂塵上,2017年亦有愈演愈烈之勢。但連麥直播、在線抓娃娃、直播問答、遠程狼人殺等類型的項目卻異軍突起,成了投資人的風口,創業者的藍海和用戶的必裝App,而這些方向的項目都有一個共同的特點——都依賴視頻通話和全互動直播技術。

 

聲網Agora.io的SDK讓App和網站都可以實現高質量的音頻通話、視頻通話、全互動直播。我試着通過該SDK實現一個多人視頻通話應用。本文先分享集成的部分。

 

環境

聲網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、分屏、窗口切換和前後攝像頭切換等內容。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章