# MNVideoPlayer
SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。
[![](https://jitpack.io/v/maning0303/MNVideoPlayer.svg)](https://jitpack.io/#maning0303/MNVideoPlayer)
## 注意:
一个基础代码,还有很多不完善的地方,只作为一个参考。
一个基础代码,还有很多不完善的地方,只作为一个参考。
## 项目截图:
<div align="center">
<img src = "screenshots/videoplay_001.png" width=200 >
</div>
<div align="center">
<img src = "screenshots/videoplay_002.png" width=400 >
<img src = "screenshots/videoplay_003.png" width=400 >
<img src = "screenshots/videoplay_004.png" width=400 >
</div>
## 如何添加
### Gradle添加:
#### 1.在Project的build.gradle中添加仓库地址
``` gradle
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
```
#### 2.在app目录下的build.gradle中添加依赖
``` gradle
dependencies {
//AndroidX
implementation 'com.github.maning0303:MNVideoPlayer:V1.1.0'
}
```
### moudle添加(建议这种方式代码简单,便于修改):
#### 1:添加mnvideoplayerlibrary为moudle
## 使用步骤:
#### 1:布局文件添加
``` java
<com.maning.mnvideoplayerlibrary.player.MNViderPlayer
android:id="@+id/mn_videoplayer"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#252525"
//首次打开是否需要自动播放
app:mnVideo_autoPlay="true" />
```
#### 2:代码调用
``` java
mnViderPlayer.setWidthAndHeightProportion(16, 9); //设置宽高比
mnViderPlayer.setIsNeedBatteryListen(true); //设置电量监听
mnViderPlayer.setIsNeedNetChangeListen(true); //设置网络监听
//第一次进来先设置数据
mnViderPlayer.setDataSource(url2, "标题2");
//播放完成监听
mnViderPlayer.setOnCompletionListener(new MNViderPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Log.i(TAG, "播放完成----");
}
});
//网络监听
mnViderPlayer.setOnNetChangeListener(new MNViderPlayer.OnNetChangeListener() {
@Override
public void onWifi(MediaPlayer mediaPlayer) {
}
@Override
public void onMobile(MediaPlayer mediaPlayer) {
Toast.makeText(MainActivity.this, "请注意,当前网络状态切换为3G/4G网络", Toast.LENGTH_LONG).show();
}
@Override
public void onNoAvailable(MediaPlayer mediaPlayer) {
Toast.makeText(MainActivity.this, "当前网络不可用,检查网络设置", Toast.LENGTH_LONG).show();
}
});
mnViderPlayer.setOnScreenOrientationListener(new OnScreenOrientationListener() {
@Override
public void orientation_landscape() {
Toast.makeText(MainActivity.this, "横屏", Toast.LENGTH_SHORT).show();
}
@Override
public void orientation_portrait() {
Toast.makeText(MainActivity.this, "竖屏", Toast.LENGTH_SHORT).show();
}
});
//----------------------------------
//第二次播放调用:
mnViderPlayer.playVideo(url1, "标题1");
//退出销毁
@Override
protected void onDestroy() {
//一定要记得销毁View
if (mnViderPlayer != null) {
mnViderPlayer.destroyVideo();
mnViderPlayer = null;
}
super.onDestroy();
}
```
## 推荐:
Name | Describe |
--- | --- |
[GankMM](https://github.com/maning0303/GankMM) | (Material Design & MVP & Retrofit + OKHttp & RecyclerView ...)Gank.io Android客户端:每天一张美女图片,一个视频短片,若干Android,iOS等程序干货,周一到周五每天更新,数据全部由 干货集中营 提供,持续更新。 |
[MNUpdateAPK](https://github.com/maning0303/MNUpdateAPK) | Android APK 版本更新的下载和安装,适配7.0,简单方便。 |
[MNImageBrowser](https://github.com/maning0303/MNImageBrowser) | 交互特效的图片浏览框架,微信向下滑动动态关闭 |
[MNCalendar](https://github.com/maning0303/MNCalendar) | 简单的日历控件练习,水平方向日历支持手势滑动切换,跳转月份;垂直方向日历选取区间范围。 |
[MClearEditText](https://github.com/maning0303/MClearEditText) | 带有删除功能的EditText |
[MNCrashMonitor](https://github.com/maning0303/MNCrashMonitor) | Debug监听程序崩溃日志,展示崩溃日志列表,方便自己平时调试。 |
[MNProgressHUD](https://github.com/maning0303/MNProgressHUD) | MNProgressHUD是对常用的自定义弹框封装,加载ProgressDialog,状态显示的StatusDialog和自定义Toast,支持背景颜色,圆角,边框和文字的自定义。 |
[MNXUtilsDB](https://github.com/maning0303/MNXUtilsDB) | xUtils3 数据库模块单独抽取出来,方便使用。 |
[MNVideoPlayer](https://github.com/maning0303/MNVideoPlayer) | SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。------代码简单,新手可以看一看。 |
[MNZXingCode](https://github.com/maning0303/MNZXingCode) | 快速集成二维码扫描和生成二维码 |
[MNChangeSkin](https://github.com/maning0303/MNChangeSkin) | Android夜间模式,通过Theme实现 |
[SwitcherView](https://github.com/maning0303/SwitcherView) | 垂直滚动的广告栏文字展示。 |
[MNPasswordEditText](https://github.com/maning0303/MNPasswordEditText) | 类似微信支付宝的密码输入框。 |
[MNSwipeToLoadDemo](https://github.com/maning0303/MNSwipeToLoadDemo) | 利用SwipeToLoadLayout实现的各种下拉刷新效果(饿了吗,京东,百度外卖,美团外卖,天猫下拉刷新等)。 |
没有合适的资源?快使用搜索试试~ 我知道了~
SurfaceView + MediaPlayer 实现的视频播放器.zip
共80个文件
png:30个
xml:24个
java:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 141 浏览量
2024-03-07
10:57:55
上传
评论
收藏 1.05MB ZIP 举报
温馨提示
SurfaceView + MediaPlayer 实现的视频播放器.zip
资源推荐
资源详情
资源评论
收起资源包目录
SurfaceView + MediaPlayer 实现的视频播放器.zip (80个子文件)
gradle.properties 908B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 232B
screenshots
videoplay_001.png 77KB
videoplay_002.png 162KB
videoplay_003.png 185KB
videoplay_004.png 185KB
app
src
main
assets
local_video.mp4 312KB
java
com
maning
mnvideoplayer
Utils.java 1KB
MainActivity.java 5KB
res
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
xml
network_security_config.xml 292B
values-w820dp
dimens.xml 358B
values
dimens.xml 211B
colors.xml 208B
strings.xml 76B
styles.xml 381B
layout
activity_main.xml 3KB
AndroidManifest.xml 1KB
proguard-rules.pro 681B
build.gradle 969B
.gitignore 7B
gradlew.bat 2KB
build.gradle 737B
settings.gradle 40B
gradlew 5KB
mnvideoplayerlibrary
src
main
java
com
maning
mnvideoplayerlibrary
utils
PlayerUtils.java 8KB
MediaUtils.java 9KB
LightnessControl.java 1KB
player
MNViderPlayer.java 49KB
view
ProgressWheel.java 21KB
listener
OnCompletionListener.java 220B
OnNetChangeListener.java 350B
OnScreenOrientationListener.java 264B
res
drawable-xhdpi
mn_player_pause.png 1KB
mn_player_forward.png 5KB
mn_player_volume_open.png 3KB
mn_player_progress_no_net.png 3KB
mn_player_landscape_screen_lock_open.png 2KB
mn_player_backward.png 5KB
mn_player_volume_close.png 2KB
mn_player_battery_04.png 2KB
mn_player_back.png 948B
mn_player_ic_fullscreen.png 928B
mn_player_battery_01.png 2KB
mn_player_play_center.png 2KB
mn_player_light.png 3KB
mn_player_battery_03.png 2KB
mn_player_battery_05.png 2KB
mn_player_landscape_screen_lock_close.png 2KB
mn_player_error.png 2KB
mn_player_ic_fullscreen_exit.png 1KB
mn_player_center_play.png 3KB
mn_player_play.png 1KB
mn_player_battery_02.png 2KB
values
colors.xml 481B
strings.xml 410B
attrs.xml 906B
layout
mn_gesture_volume_layout.xml 2KB
mn_gesture_progress_layout.xml 1KB
mn_player_view.xml 6KB
mn_gesture_light_layout.xml 2KB
mn_player_progress_view.xml 3KB
drawable
mn_player_progressbar.xml 806B
mn_palyer_bar_bottom.xml 378B
mn_player_progress_diy.xml 717B
mn_palyer_bar_top.xml 378B
mn_player_thumb.xml 423B
mn_palyer_black_circle.xml 326B
mn_palyer_black_bg.xml 408B
AndroidManifest.xml 708B
proguard-rules.pro 681B
build.gradle 594B
.gitignore 7B
.gitignore 97B
README.md 6KB
共 80 条
- 1
资源评论
白如意i
- 粉丝: 6548
- 资源: 3230
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功