圖片來源于網(wǎng)絡
最近項目當中有用到視頻播放器這個功能,分享一個我的開發(fā)心得哺徊。一般情況下室琢,我們不會去寫一個視頻播放器,因為需要很多知識和播放場景考慮落追。分享一個我使用到的視頻播放器的庫盈滴,JZVideo
(俗稱餃子播放器)。
JZVideo集成
implementation 'cn.jzvd:jiaozivideoplayer:7.5.0'
XML使用
<cn.jzvd.JzvdStd
android:id="@+id/jz_video"
android:layout_width="match_parent"
android:layout_height="200dp" />
在代碼中設置視頻地址轿钠、縮略圖巢钓、標題
MyJzvdStd jzvdStd = (MyJzvdStd) findViewById(R.id.jz_video);
jzvdStd.setUp("http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4", "餃子閉眼睛");
jzvdStd.posterImageView.setImage("http://p.qpic.cn/videoyun/0/2449_43b6f696980311e59ed467f22794e792_1/640");
setUp
方法參數(shù)說明:
- 參數(shù)一:視頻的播放路徑;
- 參數(shù)二:視頻的標題疗垛。
posterImageView.setImage
方法是設置視頻未播放的時候的縮略圖展示症汹。
界面生命周期綁定
@Override
public void onBackPressed() {
if (Jzvd.backPress()) {
return;
}
super.onBackPressed();
}
@Override
protected void onPause() {
super.onPause();
Jzvd.releaseAllVideos();
}
綁定生命周期可以更好的處理交互問題。
混淆配置
上線App的時候贷腕,出于代碼安全以及apk大小優(yōu)化的情況下背镇,可以在proguard-rules.pro
加入以下代碼:
-keep public class cn.jzvd.JZMediaSystem {*; }
-keep public class cn.jzvd.demo.CustomMedia.CustomMedia {*; }
-keep public class cn.jzvd.demo.CustomMedia.JZMediaIjk {*; }
-keep public class cn.jzvd.demo.CustomMedia.JZMediaSystemAssertFolder {*; }
-keep class tv.danmaku.ijk.media.player.** {*; }
-dontwarn tv.danmaku.ijk.media.player.*
-keep interface tv.danmaku.ijk.media.player.** { *; }
這是在App當中對JZVideo
的簡單使用,如果下次項目項目當中有比較復雜的交互或者處理泽裳,我會另外寫一篇博客分享的瞒斩。