Skip to content

Commit

Permalink
Merge branch 'release/v7.2.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
lipangit committed Apr 10, 2020
2 parents c5e9c4d + 1eaecac commit e47c706
Show file tree
Hide file tree
Showing 106 changed files with 4,617 additions and 1,293 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ build
*.asc
projectFilesBackup
release
_build
_build
/gradle/
81 changes: 61 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
--
<p align="center">
<a href="http://developer.android.com/index.html"><img src="https://img.shields.io/badge/platform-android-green.svg"></a>
<a href="http://search.maven.org/#artifactdetails%7Ccn.jzvd%7Cjiaozivideoplayer%7C7.2.3%7Caar"><img src="https://img.shields.io/badge/Maven%20Central-7.2.3-green.svg"></a>
<a href="http://search.maven.org/#artifactdetails%7Ccn.jzvd%7Cjiaozivideoplayer%7C7.2.4%7Caar"><img src="https://img.shields.io/badge/Maven%20Central-7.2.4-green.svg"></a>
<a href="http://choosealicense.com/licenses/mit/"><img src="https://img.shields.io/badge/license-MIT-green.svg"></a>
<a href="https://android-arsenal.com/details/1/3269"><img src="https://img.shields.io/badge/Android%20Arsenal-jiaozivideoplayer-green.svg?style=true"></a>
</p>
Expand All @@ -21,39 +21,23 @@

#### [购买咨询服务送饺子币](https://github.com/Jzvd/JiaoZiVideoPlayer/wiki/%E8%B4%AD%E4%B9%B0%E5%92%A8%E8%AF%A2%E6%9C%8D%E5%8A%A1%E9%80%81%E9%A5%BA%E5%AD%90%E5%B8%81)

## 项目功能

1. 可以完全自定义UI和任何功能
2. 一行代码切换播放引擎,支持的视频格式和协议取决于播放引擎,[android.media.MediaPlayer](https://developer.android.com/guide/topics/media/media-formats.html) [ijkplayer](https://github.com/Bilibili/ijkplayer)
3. 完美检测列表滑动
4. 可实现全屏播放,小窗播放
5. 能在`ListView``ViewPager``ListView``ViewPager``Fragment`等多重嵌套模式下全屏工作
6. 可以在加载、暂停、播放等各种状态中正常进入全屏和退出全屏
7. 多种视频适配屏幕的方式,可铺满全屏,可以全屏剪裁
8. 重力感应自动进入全屏
9. 全屏后手势修改进度和音量
10. Home键退出界面暂停播放,返回界面继续播放
11. WebView嵌套本地视频控件
12. demo中添加视频缓存的例子
13. 倍速播放

## 文档

- [文档 - API](https://github.com/Jzvd/JiaoZiVideoPlayer/wiki/%E6%96%87%E6%A1%A3-%E2%80%94-API),下载安装demo[jiaozivideoplayer-7.2.3.apk](https://github.com/Jzvd/JiaoZiVideoPlayer/releases/download/v7.2.3/jiaozivideoplayer-7.2.3.apk),仔细过一遍demo
- [文档 - API](https://github.com/Jzvd/JiaoZiVideoPlayer/wiki/%E6%96%87%E6%A1%A3-%E2%80%94-API),下载安装demo[jiaozivideoplayer-7.2.4.apk](https://github.com/Jzvd/JiaoZiVideoPlayer/releases/download/v7.2.4/jiaozivideoplayer-7.2.4.apk),仔细过一遍demo
- [文档 - 自定义Jzvd](https://github.com/Jzvd/JiaoZiVideoPlayer/wiki/%E6%96%87%E6%A1%A3-%E2%80%94-%E8%87%AA%E5%AE%9A%E4%B9%89Jzvd),继承JzvdStd实现自己的播放器
- [文档 - 自定义播放内核](https://github.com/Jzvd/JiaoZiVideoPlayer/wiki/%E6%96%87%E6%A1%A3-%E2%80%94-%E8%87%AA%E5%AE%9A%E4%B9%89%E6%92%AD%E6%94%BE%E5%86%85%E6%A0%B8),测试哪个播放内核适合自己的项目

## 效果

<img src="https://user-images.githubusercontent.com/2038071/31045150-a077cc8a-a5a2-11e7-8dc2-7a0e3a9f3e62.jpg" width="90%">
<img src="https://user-images.githubusercontent.com/2038071/78055336-fd0d3f00-73b5-11ea-83f2-b9c141d1d3c9.jpg" width="90%">

<img src="https://user-images.githubusercontent.com/2038071/76214561-f6245e00-6247-11ea-85bb-da35ede45463.gif" width="90%">

## QuickStart

1.添加类库
```gradle
compile 'cn.jzvd:jiaozivideoplayer:7.2.3'
implementation 'cn.jzvd:jiaozivideoplayer:7.2.4'
```

2.添加布局
Expand Down Expand Up @@ -118,6 +102,63 @@ protected void onPause() {
1. 7.0版本之后要在JzvdStd外面包一层Layout
2. 如果引入配置失败,根据失败的log检查是否添加了Java8的配置,或者升级环境到最新的稳定版

# JZVD DEMO说明
## [MainActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/MainActivity.java)
饺子快长大----包含JZVD最基本的使用例子
### [ApiActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ApiActivity.java)
展示饺子播放器自定义用法
* [SmallChangeUiActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/SmallChangeUiActivity.java)
* [饺子想呼吸----添加分享按钮](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdShowShareButtonAfterFullscreen.java)
* [饺子想摇头----全屏时显示标题](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdShowTitleAfterFullscreen.java)
* [饺子想旅行----播放完显示textureview](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdShowTextureViewAfterAutoComplete.java)
* [饺子没来----播放完成后保持全屏](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdAutoCompleteAfterFullscreen.java)
* [饺子摇摆----进入全屏模式的时候打开声音](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdVolumeAfterFullscreen.java)
* [饺子你听----播放MP3音乐](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdMp3.java)
* [饺子快点----视频倍速播放](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdSpeed.java)
* [饺子定身----添加锁定按钮,全屏后锁定无法操作界面](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdLockScreen.java)
* [饺子有事吗----视频按1:1显示](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/SmallChangeUiActivity.java)
* [饺子来不了----视频按16:9显示](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/SmallChangeUiActivity.java)
* [饺子吃莽莽----添加音量按钮,默认小屏静音全屏有声](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdVolume.java)
* [BigChangeUiActivity----包含了模仿市面上成熟APP的UI范例](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/BigChangeUiActivity.java)
* [UiBigChangeAGActivity-模仿爱奇艺,包含选集快进快退等](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/BigUIChangeAG/UiBigChangeAGActivity.java)
* [OrientationActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/OrientationActivity.java)
* [饺子会旋转----展示饺子视频方向切换](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/SmallChangeUiActivity.java)
* [ExtendsNormalActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/ExtendsNormalActivity.java)
* [饺子不信----适配了普通的Activity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/ExtendsNormalActivity.java)
* [RotationVideoSizeActivity-展示视频旋转,封面填充方式设置](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/RotationVideoSizeActivity.java)
* [饺子坐火车----展示了视频画面旋转一定度数,视频封面填充方式](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/RotationVideoSizeActivity.java)
* [CustomMediaActivity-自定义饺子播放内核](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/CustomMediaActivity.java)
* [饺子很保守----展示使用系统默认播放器内核](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/CustomMediaActivity.java)
* [饺子变心----展示使用Ijkplayer播放器内核](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/CustomMediaActivity.java)
* [饺子回来了----展示饺子切换回使用系统默认播放器内核](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/CustomMediaActivity.java)
* [饺子追星----展示使用ExoPlayer播放器内核](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/CustomMediaActivity.java)
* [PreloadingActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/PreloadingActivity.java)
* [饺子存钱----展示饺子预加载视频,加载完成后播放](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/PreloadingActivity.java)
* [ScreenRotateActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/ScreenRotateActivity.java)
* [饺子挺好----根据重力感应切换横竖屏](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/ScreenRotateActivity.java)
* [GetGifActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/GetGifActivity.java)
* [饺子会拼图----展示饺子生成GIF功能](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/CustomJzvd/JzvdStdGetGif.java)

### [ListViewActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListViewActivity.java)
展示饺子播放器在列表中的使用
* [NormalListViewActivity----展示饺子在ListView中的一般用法](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/NormalListViewActivity.java)
* [ListViewFragmentViewPagerActivity----展示饺子在viewpager-fragment中使用](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/ListViewFragmentViewPagerActivity.java)
* [ListViewMultiHolderActivity----展示饺子在多布局中使用](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/ListViewMultiHolderActivity.java)
* [RecyclerViewActivity----展示饺子在Recyleview中的一般用法](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/RecyclerViewActivity.java)
* [ListViewToDetailActivity----展示饺子从列表到详情页无缝切换](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/ListViewToDetailActivity.java)
* [AutoPlayListViewActivity----展示饺子在列表中实现自动播放](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/AutoPlayListViewActivity.java)
* [ActivityTikTok----模仿抖音列表](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/ListView/ActivityTikTok.java)

### [TinyWindowActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/TinyWindow/TinyWindowActivity.java)
展示饺子小窗播放功能
### [DirectPlayActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/DirectPlayActivity.java)
展示饺子直接全屏播放
### [WebViewActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/WebViewActivity.java)
展示在WebView中使用饺子播放器
### [LocalVideoActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/LocalVideoActivity.java)
展示播放本地视频文件
### [UiBigChangeAGActivity](https://github.com/Jzvd/JiaoZiVideoPlayer/blob/develop/demo/src/main/java/cn/jzvd/demo/api/BigUIChangeAG/UiBigChangeAGActivity.java)
高仿爱奇艺UI,包含锁定屏幕,视频切换,快进,快退等

## License MIT

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath 'com.android.tools.build:gradle:3.6.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
5 changes: 3 additions & 2 deletions demo/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
applicationId "cn.jzvd.demo"
minSdkVersion 16
targetSdkVersion 29
versionCode 98
versionName "7.2.3"
versionCode 99
versionName "7.2.4"
ndk {
// add support lib
abiFilters 'armeabi-v7a' //, 'arm64-v8a'//, "mips" //,'armeabi''x86',, 'x86_64',
Expand Down Expand Up @@ -42,6 +42,7 @@ android {
lintOptions {
abortOnError false
}

}

dependencies {
Expand Down
64 changes: 35 additions & 29 deletions demo/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".ActivityMain"
android:name=".MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait">
<intent-filter>
Expand All @@ -25,108 +25,114 @@
</intent-filter>
</activity>
<activity
android:name=".ActivityDirectPlay"
android:name=".DirectPlayActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityListView"
android:name=".ListViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityListViewNormal"
android:name=".ListView.NormalListViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityListViewFragmentViewPager"
android:name=".ListView.ListViewFragmentViewPagerActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityListViewMultiHolder"
android:name=".ListView.ListViewMultiHolderActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityTinyWindowRecycleView"
android:name=".TinyWindow.TinyWindowRecycleViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityTinyWindow"
android:name=".TinyWindow.TinyWindowActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityTinyWindowRecycleViewMultiHolder"
android:name=".TinyWindow.TinyWindowRecycleViewMultiHolderActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApi"
android:name=".ApiActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApiUISmallChange"
android:name=".api.SmallChangeUiActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApiUIBigChange"
android:name=".api.BigChangeUiActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApiRotationVideoSize"
android:name=".api.RotationVideoSizeActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApiCustomMedia"
android:name=".api.CustomMediaActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityListViewRecyclerView"
android:name=".ListView.RecyclerViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityWebView"
android:name=".WebViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApiOrientation"
android:name=".api.OrientationActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityApiExtendsNormal"
android:name=".api.ExtendsNormalActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityPreloading"
android:name=".api.PreloadingActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".tiktok.ActivityTikTok"
android:name=".ListView.tiktok.ActivityTikTok"
android:configChanges="orientation|screenSize|keyboardHidden"
android:theme="@style/Theme.AppCompat.NoActionBar"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.NoActionBar" />

<activity
android:name=".ActivityListViewToDetail"
android:name=".ListView.ListViewToDetailActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name=".ActivityListViewDetail"
android:name=".ListView.DetailListViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"
android:theme="@style/TransparentWindow" />
<activity
android:name=".ActivityListViewAutoPlay"
android:name=".ListView.AutoPlayListViewActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />

<activity
android:name=".ActivityLocalVideo"
android:name=".LocalVideoActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />

<activity android:name=".ActivityScreenRotate"
<activity
android:name=".api.ScreenRotateActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity android:name=".BigUIChangeAG.ActivityApiUIBigChangeAG"
<activity
android:name=".api.BigUIChangeAG.UiBigChangeAGActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name=".api.GetGifActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
</application>

</manifest>
Loading

0 comments on commit e47c706

Please sign in to comment.