溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-08-10 23:26:31 來源:網(wǎng)絡 閱讀:4167 作者:東風玖哥 欄目:移動開發(fā)

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

 

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

 

環(huán)境

聲網(wǎng)Agora.io SDK的兼容性良好,對硬件設備和軟件系統(tǒng)的要求不高,開發(fā)環(huán)境和測試環(huán)境滿足以下條件即可:

Android SDK API Level >= 16

Android Studio 2.0 或以上版本

支持語音和視頻功能的真機

App 要求 Android 4.1 或以上設備

 

以下是我試用聲網(wǎng)Agora.io SDK的開發(fā)環(huán)境和測試環(huán)境:

開發(fā)環(huán)境

Windows 10 家庭中文版

Java Version SE 8

Android Studio 3.2 Canary 4

 

測試環(huán)境

Samsung Nexus (Android 4.4.2 API 19)

Mi Note 3 (Android 7.1.1 API 25)

 

集成

步驟一:首先點此下載完整的SDK和官方demo

步驟二:既然我們要把聲網(wǎng)Agora.io集成到自己的項目里,所以不必運行sample,我們自己新建一個HelloAgora項目,注意一定要支持C++哦。

步驟三:把libs文件夾里的arm64-v8a、、armeabi-v7a以及x86文件夾復制粘貼到app module的libs里。如果有NDK開發(fā)的必要,則把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的必要,可以繼續(xù)在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一下,聲網(wǎng)Agora.io的SDK就集成到項目中來了。

 

權(quán)限

SDK集成完畢后,為了保證SDK能正常運行,我們需要在AndroidManisfest.xml 文件中聲明以下權(quán)限:

<!--允許程序連接網(wǎng)絡-->
<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" />
<!--允許程序獲取網(wǎng)絡狀態(tài)-->
<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" />

 

這些權(quán)限都是Android開發(fā)過程中的常見權(quán)限,有經(jīng)驗的程序員都會感覺眼熟,WRITE_EXTERNAL_STORAGE等敏感權(quán)限適配Android 6.0以后版本的問題并非本文關(guān)注重點,在此不做贅述。

 

混淆代碼

集成SDK并聲明了權(quán)限后,就該考慮混淆的問題了,我們需要在project的proguard-rules.pro文件里添加以下代碼:

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

 

經(jīng)過以上過程后,我們已經(jīng)完成了聲網(wǎng)Agora.io SDK的快速集成,邁出了走向連麥直播、在線抓娃娃、直播問答、遠程狼人殺等風口的第一步。在接下來的文章里,我將繼續(xù)分享APP ID鑒權(quán)、Token鑒權(quán)、一對一視頻聊天、創(chuàng)建群聊room、分屏、窗口切換和前后攝像頭切換等內(nèi)容。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI