我在实战项目中用了它。

更新了2.x.x版本ijkplayer的封装

支持屏幕滑动--滑动时间,亮度,声音,进度,支持全屏-单屏,双击暂停--继续,锁定屏幕,支持HTTP和https,也可以控制声道(单声道播放实现KTV功能),单片购买-图片广告等功能(可以自定义控制)



使用方式

  • gradle配置

    1. 根目录下的build.gradle
      allprojects {
repositories {
...
maven { url 'https://jitpack.io' }//添加这行
}
}
  1. module (APP) 目录下的build.gradle

implementation 'com.gitee.nurApplication:NurVideoPlayer:2.1.6'

  • AndroidManifest.xml

activity(播放器的activity)里面添加这两行

            android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"

不要忘记!!!不然全屏无效

例如:

<activity
android:name=".activityName"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"/>
  • 添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>

xml

NurVideoView是继承```LinearLayoutorientationVERTICAL``

    <com.nurmemet.nur.nurvideoplayer.NurVideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"> <!--播放器下面的UI写在这里--> </com.nurmemet.nur.nurvideoplayer.NurVideoView>

android:layout_height=一定要"match_parent"

参数xml中只有一个app:video_view_height也就是视频播放器的高度,默认值"match_parent"

默认样式:



设置了app:video_view_height="260dp"



也就是说这里的video_view_height是播放器的高度

java

初始化

 String url = "http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4";
NurVideoView videoView = findViewById(R.id.video_view);
videoView.setUp(this, url, "This is video title");
videoView.start();

需要在onPause() & onResume () & onKeyDown() 中调用

    @Override
public void onBackPressed() {
if (nurVideoPlayer.getIsFullScreen()) {
nurVideoPlayer.setChangeScreen(false);
} else
super.onBackPressed();
} @Override
protected void onPause() {
super.onPause();
nurVideoPlayer.pause();
} @Override
protected void onResume() {
super.onResume();
nurVideoPlayer.start();
} @Override
protected void onDestroy() {
super.onDestroy();
nurVideoPlayer.stopPlay();
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
boolean b = nurVideoPlayer.onKeyDown(keyCode);
return b || super.onKeyDown(keyCode, event);
}

参数

方法

return 方法 注释 作用
void setUp(Activity activity, String url, String videoName) url视频的地址,videoName 初始化
void start(); 开始播放
void pause(); 暂停
void resume(); 继续
void stopPlay(); 禁止播放
void setMaxADView(View v) 满(就是播放器的上面)-广告view
void setSmallADView(View v) 小广告view,单片购买等等

还有好多方法你自己去看吧。。。。

listener(监听)

return 方法 注释 作用
void setOnMediaListener(OnMediaListener mediaListener) 监听播放进度,更改屏幕(全屏)等
void setOnControlClickListener(OnControlClickListener controlClickListener); 监听点击事件,返回按钮,麦克风按钮等

遇到了什么问题后者是出现了bug麻烦留言,我会尽快的修改。。。

Android 视频播放器 NurVideoPlayer ()的更多相关文章

  1. Android 视频播放器切换到下个视频时残留上个视频画面的解决办法

    最近在做一个Android视频播放器,遇到一个问题:切换到下一个视频时,中间会停留上一个视频的残存画面.   这是怎么回事?   我在网上找了很多资料,终于找到了原因:我是用自定义一个surfacev ...

  2. android视频播放器开发

    http://blog.csdn.net/u010181592/article/details/49301703 http://blog.csdn.net/qq_33291295/article/de ...

  3. Android 视频播放器 (二):使用MediaPlayer播放视频

    在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...

  4. android视频播放器

    RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetworks公司提交的 ...

  5. 开源的Android视频播放器

    之前尝试自己解码视频,然后播放显示,虽然音视频都可以播放,但是实现不了音视频的同步,所以使用第三方的视频库Vitamio来实现视频播放器功能,这样自己只需要实现播放解码的制作不不要关心底层解码和显示问 ...

  6. Android 视频播放器 (三):使用NBPlayer播放直播视频

    一.前言 在 Android 音视频开发学习思路 中,我们不断的学习和了解音视频相关的知识,随着知识点不断的学习,我们现在应该做的事情,就是将知识点不断的串联起来.这样才能得到更深层次的领悟.通过整理 ...

  7. Android 视频播放器 (一):使用VideoView播放视频

    一.简介 作为Android开发,我们不可避免的会接触到视频播放,VideoView做为最简单的播放器,我们是不应该不会的. 下面简单介绍一下VideoView: VideoView是使用MediaP ...

  8. android视频播放器系列(二)——VideoView

    最近在学习视频相关的知识,现在也是在按部就班的一步步的来,如果有同样需求的同学可以跟着大家一起促进学习. 上一节说到了可以使用系统播放器以及浏览器播放本地以及网络视频,但是这在很大程度上并不能满足我们 ...

  9. Android 视频播放器 (四):使用ExoPlayer播放视频

    一.简介 ExoPlayer是一个Android应用层的媒体播放器,它提供了一套可替换Android MediaPlayer的API,可以播放本地或者是线上的音视频资源.ExoPlayer支持一些An ...

随机推荐

  1. mysql插入数据报 (Incorrect string value: '\xB6\xFE' for column 'name' at row 1)

    这是我的表结构 mysql> describe students; +--------+---------------------+------+-----+---------+-------- ...

  2. 【题解】[USACO12MAR]Cows in a Skyscraper G

    题目链接 题目大意:给定一个集合\(S\),给一个限制条件\(P\),要求划分集合,使得每一个子集\(A\in S\),\(A\)满足限制条件\(P\),且划分总数最小. 注意到数据范围\(n< ...

  3. SCOI 2008 【奖励关】

    早上的考试一道都做不出,被教做人,心态爆炸ing...... 题目描述: 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必 ...

  4. H264裸码流I/P/B帧类型判别

    花了两天时间做了个h264裸流nal类型和frame类型检测的工具,已上传至github,有需要的自行下载. 1.NAL类型检测 nal类型检测非常容易,对照下表即可容易判断类型. 较常用nal类型包 ...

  5. IDEA中,已经被加到版本库的文件如何在提交的时候忽略它们

    因为某些资源共享的原因,我在本地调试的时候需要修改Java启动程序类上的一些配置,禁用掉Kafka等等.然后我就想 把这些本地调试需要修改的但是线上服务不需要修改的给忽略掉,于是加入到了.gitign ...

  6. 基于空镜像scratch创建一个新的Docker镜像

    我们在使用Dockerfile构建docker镜像时,一种方式是使用官方预先配置好的容器镜像.优点是我们不用从头开始构建,节省了很多工作量,但付出的代价是需要下载很大的镜像包. 比如我机器上docke ...

  7. DBA提交脚步规范

    工作中需要走脚步流程,申请修改数据库,总结一些常用的语句:)提交时注明为DDL/DML_需求号_日期(各公司标准不一样)//修改字段长度使用;alter table t_task modify tas ...

  8. Python+Appium自动化测试(11)-location与size获取元素坐标

    appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素 ...

  9. (转载)Quartus II中FPGA的管脚分配保存方法(Quartus II)

    一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择"Assignments ->Pin&quo ...

  10. 多测师讲解自动化测试 _RF分配id_高级讲师肖sir

    1.Assign Id To Element.