網易雲視訊直播推流整合大致過程
阿新 • • 發佈:2019-02-01
最近剛來到一家新公司,接手的第一個專案是做一款教育直播app(教師端),而我負責的是教師端的,也就是推流那個端的.
由於沒有接觸過這類的專案,怕接入網易雲時碰到bug不知道如何解決,所以一段時間內沉浸在電腦的世界裡,查詢資料,檢視直播的原理.
直播的原理我就不在大神面前裝來,直接附上本人認為好的部落格,他寫了3篇,寫的非常詳細,可認真的研究下:
網易雲視訊直播推流端整合步驟:
第一步:當然是註冊我們的網易雲賬號啦,地址是:
第二步:註冊好賬號後,下載網易雲官方的sdk,根據網易雲的開發文件進行如下的操作: a.網易雲視訊直播所支援的裝置是:搭載Android系統的裝置,支援的CPU架構:armv7、arm64,系統要求:系統要求:Android 4.2(API 17)及其以上 b.為了不影響直播的進行,最好請在proguard-project.txt檔案中新增以下程式碼: -keep class com.netease.** { *; } -keep class jp.co.cyberagent.android.gpuimage.** { *; } c.我在進行整合用的是網易雲的demo,對其進行修改整合到我自己的專案中,所以接下來是下載網易雲直播推流demo,地址:
d.開始將資原始檔拷貝進我們的專案中,我們要拷貝的東西有下面這些 第一步:將demo中的so庫拷到我們自己的jinLibs目錄下. 第二步:將.jar檔案拷到lib目錄下,這裡注意網易雲時將so庫和.jar檔案拷到jinLibs這一個檔案下,我們這裡可以不用這樣,按照自己的方式拷貝. 第三步:將我們需要的網易雲demo中的activity和佈局介面拷貝到我們自己的專案中(你如果覺得麻煩,全拷貝進去,再把不需要的activity和佈局介面移除) e.開始配置我們的清單檔案,配置如下: 第一步:許可權配置: <!-- 允許掛載和反掛載檔案系統 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 允許程式向外部儲存裝置寫資料 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允許程式開啟網路套接字 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 允許程式獲取網路相關資訊 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 允許程式向外部儲存裝置寫資料 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允許程式寫音訊資料 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 允許程式使用PowerManager WakeLocks以防止處理器休眠或者螢幕鎖屏 --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 允許程式獲取Wifi網路狀態資訊 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 允許程式使用裝置的camera --> <uses-permission android:name="android.permission.CAMERA" /> <!-- 允許程式使用閃光燈 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <!-- 允許程式獲得裝置資訊 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-feature android:name="android.hardware.camera.autofocus"/> <!-- 宣告程式使用camera和自動對焦功能 --> <uses-feature android:name="android.hardware.camera"/> <uses-feature android:name="android.hardware.camera.autofocus"/> <!-- 宣告程式使用OpenGL ES 2.0 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> 第二步:配置我們所需要的網易雲demo的activity <!-- 歡迎頁面activity,預設豎屏模式 --> <activity android:name=".WelcomeActivity" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 直播引數設定頁面activity,預設豎屏模式 --> <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" /> <!-- 直播主頁面activity,預設豎屏模式 --> <activity android:name=".MediaPreviewActivity" android:label="@string/app_name" android:screenOrientation="portrait"/>
配置到這裡基本就結束了,我們可以開始將我們的專案對接拷貝進我們專案中的demo的activity,(我只用到了兩個activity,一個是mainActivity和MediaPreviewActivity)
mainActivity:我們可以對其進行修改,在這個activity中我們請求我們自己的伺服器後臺,獲取推流地址,而且一些資料的相關操作,也可以再這裡面進行,比如直播房間的建立,直播房間的修改等 MediaPreviewActivity:這個activity就是我們直播的介面,網易雲這個介面做的很簡潔,這樣我們就可以再這個介面進行自己的ui配置,新增直播之外的一些邏輯操作(比如:聊天彈幕,禮物等)
哈哈,大致過程就是這樣,當然還有些小問題,這就要認真看下網易雲官方文件啦.