【從 0 開始開發一款直播 APP】10 騰訊雲通訊及SDK整合
本文為菜鳥窩作者蔣志碧的連載。“從 0 開始開發一款直播 APP ”系列來聊聊時下最火的直播 APP,如何完整的實現一個類"騰訊直播"的商業化專案
【從 0 開始開發一款直播 APP】10 騰訊雲通訊及SDK整合
【從 0 開始開發一款直播 APP】11 IM 登入實現
前面講了那麼多基礎知識點,各種封裝,一直還沒正式講到騰訊雲,今天筆者給大家講解騰訊雲 IM 登入。在此之前,筆者先給大家講解如何檢視騰訊雲官方文件,如果對文件沒有一定的瞭解,估計直接看程式碼會很吃力的,而且不知所以然,因為筆者也嘗試過直接看程式碼,苦逼了,看到某個類或者方法不知道是幹嘛的,之後又去查文章,但是知識點瑣碎,還是決定完完全全的看完文件再擼程式碼。這裡只針對技術不是很好的朋友(比如筆者我),大神路過,勿噴。
雲通訊
首先進入騰訊雲官網,開啟雲通訊,第一次進入需要註冊賬號,沒有註冊的請先註冊賬號。
點選雲通訊會進入如下介面。
點選立即使用,註冊好賬號的朋友會進入到應用列表,第一次進入這裡是沒有應用的,下面筆者簡單說明一下怎麼建立應用。
點選左上角建立應用接入,彈出建立應用列表。根據自己需要為應用命名,點選確定之後將產生建立的應用。
紅色矩形框中的就是剛建立的應用,點選應用配置進入配置介面。
應用平臺欄目點選編輯。
建議全選,選完點選儲存。
賬號體系整合欄目點選編輯,進入如下頁面,根據需求填寫相關資訊。這裡選擇獨立模式(後面會講解獨立模式和託管模式),然後點選儲存。
點選完成之後會看到如下資訊,看到圖中產生了下載「公私鑰」,這個之後會介紹。可以看到這裡產生了 accountType,剛建立應用的時候產生了 SdkAppId,這個就是我們在專案中 IM 登入 需要用到的引數,後面文章再講。建立應用算是完成了,下面開始講解如何整合 IMSDK 實現登入。
客戶端整合
開啟騰訊雲幫助與文件,針對 IM 登入功能講解文件的使用。
1、IMSDK 整合
開啟官網,下載 IMSDK 相關的庫檔案。
進入到下載頁面,選擇 IM Android 下載。
下載好之後解壓,開啟找到 libs 目錄,複製所有 jar 包貼上到專案 libs 包下,然後點選同步。
建立 jniLibs 資料夾,將剩餘檔案複製到該目錄(官方建議我們全部將檔案拷到 libs 目錄,筆者是拷了jar 包,把其它的放在 jniLibs 目錄下),這裡再普及一個知識點 Android jniLibs下目錄詳解(.so檔案),不瞭解.so檔案的可以看看。
全部完成之後就是這樣。
官網會有相關包名簡介,這裡筆者進行了截圖,方便不想看官網的童鞋檢視。
建立一個新工程,並在AndroidManifest.xml 中新增以下許可權:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
1.8.0及以上版本需要在AndroidManifest.xml的<application></application>中新增以下配置(筆者為每個 service 或者 receiver 新增了部分註釋,希望幫助讀者快速理解其作用):
<!--負責網路收發包-->
<!-- 訊息收發service -->
<service
android:name="com.tencent.qalsdk.service.QalService"
android:exported="false"
android:process=":QALSERVICE" >
</service>
<!--負責保護邏輯-->
<!-- 訊息收發輔助service -->
<service
android:name="com.tencent.qalsdk.service.QalAssistService"
android:exported="false"
android:process=":QALSERVICE" >
</service>
<!--service收到訊息後,app主程式不在時呼叫-->
<!-- 離線訊息廣播接收器 -->
<receiver
android:name="com.tencent.qalsdk.QALBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.tencent.qalsdk.broadcast.qal" />
</intent-filter>
</receiver>
<!--1,網路變化時重新建立TCP連線,比如:Wi-Fi切換-->
<!--2,收到最新廣播時,如果service不在,會重新拉起-->
<!-- 系統訊息廣播接收器 -->
<receiver
android:name="com.tencent.qalsdk.core.NetConnInfoCenter" android:process=":QALSERVICE">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.TIME_SET" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
</intent-filter>
</receiver>
注意事項:
1、 整合IMSDK 1.9.0以上的版本時,需要引用ANDROID SDK API LEVEL 23+版本的 android-support-v4.jar。
2、由於從ANDROID SDK從API LEVEL 23開始去掉了http相關特性,所以在用API LEVEL 23以上ANDROID SDK版本進行編譯時,需要增加對org.apache.http.legacy.jar的引用。具體參考 Android 6.0 Changes。
再普及一個知識點 Android API Level與sdk版本對照表,不知道 API 是什麼版本的檢視該部落格對照,並下載相關文件。
後面的那些請讀者自行檢視官方文件,內容太多,並且筆者也沒有官方寫的好。
2、初始化 SDK
初始化示例官方給我們介紹了一個管理類 TIMManager,並給出了相關介紹,初始化操作就在 Application 中進行吧。
建立一個 Application 類繼承 Application,實現 onCreate() 方法,並在 AndroidManifest.xml 檔案中註冊。
public class LiveApplication extends Application{
private static LiveApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
//初始化imsdk
TIMManager.getInstance().init(getApplicationContext());
//檢測是否初始化並整合成功
Log.e("LiveApplication",TIMManager.getInstance().getVersion());
}
public static LiveApplication getInstance(){
return instance;
}
}
執行專案,在控制檯看到如下資訊就說明整合成功了。
本章只講解騰訊雲通訊和SDK整合,下一節講解 IM 登入實現。
注意:
SDK整合可能不是一次性就成功,會遇到某些問題(筆者就整合了不止一次),遇到問題的童鞋不要慌張,仔細對照官方文件以及示例,還有錯誤碼等認真修改,會成功的。
客戶端整合文件,IMSDK 文件簡介
錯誤碼文件,整合中所遇到的錯誤碼上面基本上都有的,按照錯誤碼進行改正就可以順利整合
常見問題FAQ,使用中遇到的常見問題裡面都有解決方案
騰訊雲 Demo 簡介,包括原始碼和 Demo,隨心播筆者已經下載玩過了,直播的基本功能都已經實現,有興趣的看以看看原始碼。
小直播 DEMO
隨心播 iLiveSDK
直播技術知識結構
每個程式猿必備的110本經典程式設計書,免費領取地址:http://mp.weixin.qq.com/s/cx433vAj_CDLzmhOoUS6zA
相關文章
- 從QQ音樂開發,探討如何利用騰訊雲SDK在直播中加入視訊動畫動畫
- 【從 0 開始開發一款直播 APP】3.2 高層封裝之 Adapter — RecyclerView 實現單佈局展示...APP封裝APTView
- 如何從零開始整合DTM Android SDKAndroid
- 從零開始向原生專案整合Flutter以及通訊Flutter
- 從0開始搭建preact開發環境React開發環境
- iOS整合融雲SDK即時通訊整理iOS
- 『騰訊雲開發達人計劃』開始啦~
- 從今天開始學習iOS開發(iOS 7版)–構建一款App之App開發過程iOSAPP
- 從通訊開始聊聊訊息中介軟體
- 從 0 開始打造聊天室,搞定 Laravel 實時通訊 —— 傳送訊息Laravel
- 從零開始:如何整合美顏SDK到你的應用中
- JavaWeb專案開發從0開始的要點!JavaWeb
- 從0開發一款iOS App-朱德權-極客時間iOSAPP
- 從 0 開始打造聊天室,搞定 Laravel 實時通訊 —— 準備工作Laravel
- 從0開始,手把手教你用Vue開發一個答題AppVueAPP
- 區塊鏈聊天通訊直播系統開發app,區塊鏈應用開發方案區塊鏈APP
- FFmpeg開發筆記(四十八)從0開始搭建直播系統的開源軟體架構筆記架構
- 從0開始寫一個直播間的禮物系統
- 從 0 開始打造聊天室,搞定 Laravel 實時通訊 —— 配置與繫結Laravel
- 週末直播錄影:現場寫程式碼,從 0 開始開發 AI 評測平臺AI
- 從 0 開始瞭解 DockerDocker
- 從 0 開始學架構架構
- 【活動】直播揭秘<如何從0開發HarmonyOS硬體>
- 社交直播app開發,IM即時通訊開發,區塊鏈賦能實體經濟APP區塊鏈
- [敏捷開發實踐](0) 開始敏捷
- 用C++從0開始開發自己的程式語言C++
- 從0開始開發網頁,需要學什麼?(小白向)網頁
- 《Android原生整合虹軟SDK開發uniapp外掛》AndroidAPP
- 從零開始實現線上直播
- 短視訊SDK,直播SDK,美顏SDK_提供開放API介面API
- 從0開始學習java,應該從那塊開始學起?Java
- 從零開始開發和搭建直播平臺-教程彙總篇
- uni-app 小程式從零開始的開發流程APP
- 開發 React Native APP —— 從改造官方Demo開始(1)React NativeAPP
- 開發 React Native APP —— 從改造官方Demo開始(2)React NativeAPP
- 開發 React Native APP —— 從改造官方Demo開始(二)React NativeAPP
- 開發 React Native APP —— 從改造官方Demo開始(一)React NativeAPP
- 騰訊雲sdk 支援 騰訊雲簡訊 Laravel Notification [最新版]Laravel