視訊播放器-IPlayer-列表播放、全屏播放、重力自動旋轉、清晰度切換、播放引擎切換、自定義主題顏色
愛播支援列表播放、全屏播放、重力自動旋轉、清晰度切換、播放引擎切換、自定義主題顏色等。
ofollow,noindex">https://github.com/hacknife/IPlayer
G_1203210711.gif

G_1203210804.gif

G_1203210908.gif

G_1203211011.gif

G_1203211119.gif

G_1203211240.gif

G_1203211322.gif

G_1203212834.gif

G_1203212914.gif
特點
- 全屏重力感應自動旋轉
- 清晰度切換(高清/超清/藍光)
- 自定義播放引擎(ijkPlayer/ExoPlayer/MediaPlayer)
- 視訊列表播放(ListView/RecyclerView)
- 自定義主題顏色
- 可拖動視窗播放
- 拖動調節音量、亮度
- 支援Https視訊源
- 多佈局巢狀播放
屬性說明
屬性 | 功能 | 值 | 預設狀態 |
---|---|---|---|
enableTitleBar | 是否啟用標題欄 | boolean | 是 |
enableBottomBar | 是否啟用控制欄 | boolean | 是 |
enableBottomProgressBar | 是否啟用底部進度條 | boolean | 是 |
enableEnlarge | 是否啟用全屏按鈕 | boolean | 是 |
enableClarity | 非全屏模式下是否啟用播放源切換 | boolean | 是 |
enableShowWifiDialog | 非wifi條件下播放視訊是否提示使用者 | boolean | 是 |
enableCache | 是否啟用快取 | boolean | 否 |
enableTinyWindow | 視訊列表中是否啟用小視窗播放 | boolean | 否 |
tinyWindowWidth | 小視窗寬度 | dimension | 預設為普通視窗的2/5 |
tinyWindowHeight | 小視窗高度 | dimension | 預設為普通視窗的2/5 |
screenType | 普通視窗中,視訊內容顯示的方式 | adapter/fillCrop/fillParent/original | adapter |
screenTypeFull | 全屏視窗中,視訊內容顯示的方式 | adapter/fillCrop/fillParent/original | adapter |
screenTypeTiny | 小視窗中,視訊內容顯示的方式 | adapter/fillCrop/fillParent/original | adapter |
orientationFullScreen | 全屏模式中,Activity的方向 | vertical/horizontal | 重力感應自動旋轉 |
快速引入專案
需要使用的module中新增引用
dependencies { implementation 'com.hacknife:iplayer:1.2.4' //可選 implementation 'com.hacknife.ijkplayer:ijkplayer-java:0.8.8' implementation 'com.hacknife.ijkplayer:ijkplayer-exo:0.8.8' implementation 'com.hacknife.ijkplayer:ijkplayer-armv7a:0.8.8' implementation 'com.hacknife.ijkplayer:ijkplayer-armv5:0.8.8' implementation 'com.hacknife.ijkplayer:ijkplayer-arm64:0.8.8' implementation 'com.hacknife.ijkplayer:ijkplayer-86:0.8.8' implementation 'com.hacknife.ijkplayer:ijkplayer-86_64:0.8.8' }
使用說明
Step1.配置播放器主題色
在APP主題中新增如下屬性
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="iplayer_primary_color">#00aeff</item> </style>
Step2.設定封面載入器
實現ImageLoader中的方法
public class CoverLoader implements ImageLoader { @Override public void onLoadCover(ImageView cover, String coverUrl) { Glide.with(cover).load(coverUrl).into(cover); } }
Step3.播放器生命週期管理
設定圖片載入器和新增愛播生命週期管理器,播放引擎可選,如果不設定預設使用系統自帶的MediaPlayer
Player.setPlayerEngine(new IjkEngine()); Player.setImageLoader(new CoverLoader()); Application.registerActivityLifecycleCallbacks(new PlayerLifecycleCallbacks());
Step4.添加布局
<com.hacknife.iplayer.IPlayer android:id="@+id/player" android:layout_width="match_parent" android:layout_height="match_parent"/>
Step5.設定資料來源
DataSource source = new DataSource.Builder() .url("標清", Constant.url[0]) .url("高清", Constant.url[1]) .url("超清", Constant.url[2]) .url("藍光", Constant.url[3]) .title(Constant.title[0]) .cover(Constant.img[0]) .build(); player.setDataSource(source, ContainerMode.CONTAINER_MODE_NORMAL);
player.setDataSource(String url, String title, String cover, ContainerMode containerMode, int position)
Step6.返回
如果啟用了全屏播放或者小視窗播放,需要實現以下方法
public void onBackPressed() { if (Player.backPress()) return; super.onBackPressed(); }
Step7.AndroidManifest
<activity android:name=".DemoActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:screenOrientation="portrait"/>
更多使用方式請參考demo
掃碼體驗一下吧

qrcode.png