1. 程式人生 > >騰訊雲直播(入門版)快速整合

騰訊雲直播(入門版)快速整合

這篇部落格為快速整合篇,按照此部落格,你可以快速整合一個相當簡單的Demo,如果你需要一個功能完整的專案,我也在GitHub上為你準備好。下面跟我快速整合一下騰訊雲直播吧!

第一步:註冊 騰訊雲賬號 並且實名認證。

接下來

你就拿到了推流和播放地址啦

第四步:下載SDK

我整合的只是直播就下載了這個

下載完裡面有Demo,可以跑起來自己看,我建議先跑Demo,不是為了看程式碼,是為了後面的測試方便。也可以不跑。

開始整合(Android Studio)

下載完的SDK裡面有一個叫SDK的資料夾,開啟把  LiteAVSDK_Smart_5.2.5541.aar這個檔案放到Studio的libs 資料夾就好

然後在在工程 app 目錄下的 build.gradle 中,新增引用 aar 包的程式碼:

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  // 匯入騰訊雲直播 SDK aar
 implementation(name: 'LiteAVSDK_Smart_5.2.5541', ext: 'aar')
}

注意arr的版本號要一樣。

然後

在工程目錄下的 build.gradle 中,新增 flatDir,指定本地倉庫:

allprojects {
  repositories {
      jcenter()
      flatDir {
          dirs 'libs'
      }
  }
}

還有在工程目錄下的 build.gradle 的 defaultConfig 裡面,指定 ndk 相容的架構:

defaultConfig {
    applicationId "com.tencent.liteav.demo"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode 1
    versionName "2.0"
      //只需複製下面的
    ndk {
        abiFilters "armeabi", "armeabi-v7a"
        // 如果您使用的是商業版,只能使用 armeabi 架構,即:
        // abiFilters "armeabi",
    }
}

build一下,如果報缺東西,肯定是你的arr版本和第二個圖不一樣。

第五步:新增許可權

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.Camera"/>
<uses-feature android:name="android.hardware.camera.autofocus" />

第六步: 初始化SDK檢視整合情況

String sdkver = TXLiveBase.getSDKVersionStr();
Log.e("liteavsdk", "liteav sdk version is : " + sdkver);

編譯執行

如果前面各步驟都操作正確,demo 工程將順利編譯通過,執行之後將在 logcat 中看到如下 log 資訊:08-10 19:30:36.547 19577-19577/ D/liteavsdk: liteav sdk version is : 3.0.1185

到這準備工作就完成了,就只剩下簡單的集成了

第七步:在佈局中加上騰訊雲的View

<com.tencent.rtmp.ui.TXCloudVideoView
            android:id="@+id/video"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerInParent="true"
            android:visibility="gone"/>

第八步:只剩下程式碼啦

選擇性複製就好

public class SimplenessDemo extends AppCompatActivity {
    private TXCloudVideoView video;
    //這個是推流地址
    private String rtmpUrl = 
    private TXLivePusher mLivePusher;
    private TXLivePushConfig mLivePushConfig;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simpleness_demo);
        //找到TXCloudVideoView控制元件
        video = (TXCloudVideoView) findViewById(R.id.video);
        //這個物件用來完成推流工作
        mLivePusher = new TXLivePusher(this);
        //初始化該物件的用途是決定 LivePush 推流時各個環節的配置引數
        mLivePushConfig = new TXLivePushConfig();
        //設定config
        mLivePusher.setConfig(mLivePushConfig);
        //設定URL
     mLivePusher.startPusher(rtmpUrl);
        //關聯TXCloudVideoView控制元件
        mLivePusher.startCameraPreview(video);
    }
}

完成推流,如果之前的Demo跑起來,你就可以看效果啦。

沒有跑起來不要急,我整合簡單的直播就可以啦。

佈局

<com.tencent.rtmp.ui.TXCloudVideoView
            android:id="@+id/video_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerInParent="true"
            android:visibility="gone"/>

程式碼

//mPlayerView 即 step1 中新增的介面 view
TXCloudVideoView mView = (TXCloudVideoView) view.findViewById(R.id.video_view);

//建立 player 物件
TXLivePlayer mLivePlayer = new TXLivePlayer(getActivity());

//關鍵 player 物件與介面 view
mLivePlayer.setPlayerView(mView);
//url是播放地址
String flvUrl = ;
mLivePlayer.startPlay(flvUrl, TXLivePlayer.PLAY_TYPE_LIVE_FLV); //推薦 FLV

可以了,簡單的Demo完成。具體優化看官方文件,如果不想我也有完整的Demo,花費了一些時間的。

我把簡單的Demo寫到一個專案,只是不同的Activity。

Demo簡介

功能

@主播離開,新增一張圖片。√

@自動對焦√

@清晰度√

@以設定水印,但是要在播放端開啟√

@可以開啟硬體編碼加速√

@切換前置相機√

@開啟閃光燈√

@暫停/繼續√

@結束、開始√

@傳送訊息√

注意事項:

有些功能是給使用者看的不是主播,要整合直播可以看。我的Demo第二個module就是整合直播Demo。

注意網速,會影響nide

如果有什麼問題可以在評論區,回覆我會及時回覆,或者聯絡QQ:1441289824