1. 程式人生 > >網易雲視訊直播推流整合大致過程

網易雲視訊直播推流整合大致過程

最近剛來到一家新公司,接手的第一個專案是做一款教育直播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配置,新增直播之外的一些邏輯操作(比如:聊天彈幕,禮物等)

哈哈,大致過程就是這樣,當然還有些小問題,這就要認真看下網易雲官方文件啦.