騰訊雲直播(入門版)快速整合
這篇部落格為快速整合篇,按照此部落格,你可以快速整合一個相當簡單的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