安卓基于ijkplayer的视频播放器,集成沉浸式全屏、弹幕、触屏控

时间:2017-03-09 00:16 来源:互联网 作者:源码搜藏收藏

  • 源码类别:项目源码
  • 源码大小:未知
  • 编码格式:gbk,utf8,不限
  • 运行环境:Android studio
  • 广告推荐

该视频播放器基于Bilibili的开源项目ijkplayer做的,是在github上的demo基础上搭建了个播放界面,如果你之前有研究过这个demo代码,那你看这个库就非常简单了。至于还不知道ijkplayer这个开源库的话可以先去了解下,这应该是目前github最火的开源视频播放器了吧,网上对这个的介绍也很多这里就不讲这个了。

我从Bilibili客户端扒了好多图标来用,希望不要造成不好的影响,我也算个B站粉- -。下面先列一下目前集成的主要功能:

  1. 沉浸式全屏播放,隐藏状态栏和虚拟键如果有的话,用的时候有些需要注意的地方放后面说;
  2. 弹幕功能,包括发射弹幕和弹幕基本样式设置:大小、颜色和类型(顶部、底部和滚动弹幕),效果同Bilibili;
  3. 竖屏和横屏的切换,其实就是小屏和全屏的切换,提供了重力感应来切换竖横屏功能;
  4. 触屏控制,竖直方向左边控制亮度,右边控制声音,水平方向控制播放进度;
  5. 三指旋转缩放,当三个手指触屏时就可以进行视频界面的旋转缩放,效果同Bilibili;
  6. 视频源切换,可设置流畅、清晰、高清、超清和1080p等5种视频源;
  7. 视频宽高比例设置,包括16:9、4:3、视频内嵌填充界面和填充屏幕等4种;
  8. 记录上次播放进度的跳转功能;
  9. 其它的如截屏功能,电池电量显示,时间显示,播放常亮,跑马灯标题和锁屏处理;

Screenshot

动图显示比较慢,就传两张gif。

 

Usage

添加依赖:

  1. // 在项目根 build.gradle 添加如下:  
  2. allprojects {  
  3.     repositories {  
  4.         ...  
  5.         maven { url 'https://jitpack.io' }  
  6.     }  
  7. }  
  8.   
  9. // 添加依赖库:  
  10. dependencies {  
  11.     compile 'com.github.Rukey7:IjkPlayerView:{lastest-version}'  
  12. }
配置AndroidManifest.xml:

 

  1. <activity  
  2.     android:name=".IjkPlayerActivity"  
  3.     android:configChanges="orientation|keyboardHidden|screenSize"/>

 

布局:

  1. <com.dl7.player.media.IjkPlayerView  
  2.     android:id="@+id/player_view"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="200dp"/> 

代码中调用方式如下:
  1. public class IjkPlayerActivity extends AppCompatActivity {  
  2.   
  3.     private IjkPlayerView mPlayerView;  
  4.   
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_ijk_player);  
  9.         setSupportActionBar(mToolbar);  
  10.         //  以下为配置接口,选择需要的调用  
  11.         Glide.with(this).load(IMAGE_URL).fitCenter().into(mPlayerView.mPlayerThumb);    // 显示界面图  
  12.         mPlayerView.init()              // 初始化,必须先调用  
  13.                 .setTitle("这是个标题")  // 设置标题,全屏时显示  
  14.                 .setSkipTip(1000*60*1)  // 设置跳转提示  
  15.                 .enableOrientation()    // 使能重力翻转  
  16.                 .setVideoPath(VIDEO_URL)    // 设置视频Url,单个视频源可用这个  
  17.                 .setVideoSource(null, VIDEO_URL, VIDEO_URL, VIDEO_URL, null)    // 设置视频Url,多个视频源用这个  
  18.                 .setMediaQuality(IjkPlayerView.MEDIA_QUALITY_HIGH)  // 指定初始视频源  
  19.                 .enableDanmaku()        // 使能弹幕功能  
  20.                 .setDanmakuSource(getResources().openRawResource(R.raw.comments))   // 添加弹幕资源,必须在enableDanmaku()后调用  
  21.                 .start();   // 启动播放  
  22.     }  
  23.   
  24.     @Override  
  25.     protected void onResume() {  
  26.         super.onResume();  
  27.         mPlayerView.onResume();  
  28.     }  
  29.   
  30.     @Override  
  31.     protected void onPause() {  
  32.         super.onPause();  
  33.         mPlayerView.onPause();  
  34.     }  
  35.   
  36.     @Override  
  37.     protected void onDestroy() {  
  38.         super.onDestroy();  
  39.         mPlayerView.onDestroy();  
  40.     }  
  41.   
  42.     @Override  
  43.     public void onConfigurationChanged(Configuration newConfig) {  
  44.         super.onConfigurationChanged(newConfig);  
  45.         mPlayerView.configurationChanged(newConfig);  
  46.     }  
  47.   
  48.     @Override  
  49.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  50.         if (mPlayerView.handleVolumeKey(keyCode)) {  
  51.             return true;  

本站资源仅限于学习研究,严禁从事商业或者非法活动! 源码搜藏网所有源码来自互联网转载与用户上传分享,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

项目源码下载排行

最新文章