• Stars
    star
    124
  • Rank 288,207 (Top 6 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

(暂停维护)SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。------代码简单,基础应用-----

MNVideoPlayer

SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。

注意:

一个基础代码,还有很多不完善的地方,只作为一个参考。

一个基础代码,还有很多不完善的地方,只作为一个参考。

一个基础代码,还有很多不完善的地方,只作为一个参考。

项目截图:

如何添加

Gradle添加:

1.在Project的build.gradle中添加仓库地址

	allprojects {
		repositories {
			...
			maven { url "https://jitpack.io" }
		}
	}

2.在app目录下的build.gradle中添加依赖

	dependencies {
            //AndroidX
	        implementation 'com.github.maning0303:MNVideoPlayer:V1.1.0'
	}

moudle添加(建议这种方式代码简单,便于修改):

1:添加mnvideoplayerlibrary为moudle

使用步骤:

1:布局文件添加

           <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:代码调用

            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 (Material Design & MVP & Retrofit + OKHttp & RecyclerView ...)Gank.io Android客户端:每天一张美女图片,一个视频短片,若干Android,iOS等程序干货,周一到周五每天更新,数据全部由 干货集中营 提供,持续更新。
MNUpdateAPK Android APK 版本更新的下载和安装,适配7.0,简单方便。
MNImageBrowser 交互特效的图片浏览框架,微信向下滑动动态关闭
MNCalendar 简单的日历控件练习,水平方向日历支持手势滑动切换,跳转月份;垂直方向日历选取区间范围。
MClearEditText 带有删除功能的EditText
MNCrashMonitor Debug监听程序崩溃日志,展示崩溃日志列表,方便自己平时调试。
MNProgressHUD MNProgressHUD是对常用的自定义弹框封装,加载ProgressDialog,状态显示的StatusDialog和自定义Toast,支持背景颜色,圆角,边框和文字的自定义。
MNXUtilsDB xUtils3 数据库模块单独抽取出来,方便使用。
MNVideoPlayer SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退、调节音量,亮度等。------代码简单,新手可以看一看。
MNZXingCode 快速集成二维码扫描和生成二维码
MNChangeSkin Android夜间模式,通过Theme实现
SwitcherView 垂直滚动的广告栏文字展示。
MNPasswordEditText 类似微信支付宝的密码输入框。
MNSwipeToLoadDemo 利用SwipeToLoadLayout实现的各种下拉刷新效果(饿了吗,京东,百度外卖,美团外卖,天猫下拉刷新等)。

More Repositories

1

MNImageBrowser

一个图片浏览框架,支持AndroidX,支持Fresco,支持微博长图,类似微信图片浏览,手势向下滑动关闭,图片加载引擎自定义,支持长按,单击监听,切换监听,自定义任意的遮罩层,实现各种效果,支持横竖屏切换,简单方便。
Java
738
star
2

GankMM

(Material Design & MVP & Retrofit + OKHttp & RecyclerView ...)Gank.io Android客户端:每天一张美女图片,一个视频短片,若干Android,iOS等程序干货,周一到周五每天更新,数据全部由 干货集中营 提供。
Java
572
star
3

MNProgressHUD

一个常用的自定义弹框封装(适配AndroidX),加载ProgressDialog,状态显示的StatusDialog和自定义Toast,全部支持背景颜色,圆角,边框和文字的自定义,构建者模式,链式调用。
Java
401
star
4

MNUpdateAPK

Android APK Update 版本更新的下载和安装,适配7.0-11.0系统
Java
368
star
5

MNCrashMonitor

MNCrashMonitor 监听程序崩溃日志,直接页面展示崩溃日志列表,调试方便,测试人员可以随时给程序猿查看日志详情,可以动态添加日志内容,手机直接查看日志内容可以分享,复制,生成长截图。
Java
283
star
6

MNCalendar

[暂停维护] 简单的日历控件,水平方向日历支持手势滑动切换,跳转月份;垂直方向日历选取区间范围。
Java
264
star
7

MNZXingCode

快速集成zxing二维码扫描,生成二维码,可配置相册,闪光灯,相机可以调整焦距放大缩小,自定义扫描线颜色,自定义背景颜色,自定义遮罩层,自定义Activity,多个二维码扫码(zxing:core:3.3.3/3.4.0)
Java
254
star
8

MNMLKitScanner

基于Google ML Kit 快速集成二维码扫描,速度比zxing快,可配置相册,闪光灯,相机可以调整焦距放大缩小,自定义扫描线颜色,自定义背景颜色,自定义遮罩层,支持同时扫多个二维码和条形码
Java
189
star
9

MNPasswordEditText

Android验证码和密码输入框,能自定义输入框个数和样式(连体,下划线和方形框) 类似微信支付宝的密码输入框等
Java
177
star
10

MNSwipeToLoadDemo

利用SwipeToLoadLayout实现的各种下拉刷新效果(饿了吗,京东,百度外卖,美团外卖,天猫下拉刷新等)
Java
134
star
11

SwitcherView

滚动的广告栏文字展示控件
Java
81
star
12

MClearEditText

带有删除功能的EditText,可以自定义删除图片,自定义下划线等
Java
62
star
13

MNChangeSkin

Android夜间模式,通过Theme实现
Java
49
star
14

GankMM_iOS

(iOS版)干货集中营:每天提供一张美女图片和若干程序干货。
Objective-C
26
star
15

MNCustomCamera

一个自定义相机,只拍摄相框中的图片(身份证拍摄等场景)
Java
13
star
16

MNXUtilsDB

xUtils3 数据库模块单独抽取出来,方便使用!
Java
6
star
17

MNCustomCamera-iOS

自定义相机(拍摄指定区域)
Objective-C
4
star
18

MNBaseRecyclerViewAdapter

抽取BaseRecyclerViewAdapter,简化代码,支持添加头尾布局。
Java
4
star
19

MNGitHubStars-Android

归类自己GitHub标记的项目
4
star
20

MNHotFix

QQ空间热修复实践,动态添加dex文件,ASM插桩
Java
3
star
21

MNPickerView-iOS

iOS 滚轮选择器(时间选择和单项选择)
Objective-C
2
star
22

GankMM-WX

练手微信小程序:使用干货集中营的数据!
JavaScript
1
star
23

RobustDemo

美团robust热修复测试
Java
1
star
24

MNOkhttpUtils

okhttp 网络请求
Java
1
star