SkillAgentSearch skills...

YjPlay

一个支持自定义UI布局,流式API, 加密,直播 ,亮度,音量,快进等手势 ,广告视频预览,多种加载模式 ,多种分辨率切换 ,多种封面图, 自定义数据源,列表播放,倍数播放,边播变缓存<font color="red">不是使用AndroidVideoCache</font>,离线播放,神奇的播放器

Install / Use

/learn @yangchaojiang/YjPlay
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

yjPlay

Download

gif 显示有点卡,帧数低,实际很流畅

下载预览apk

基于exoPlayer 自定义播放器 JPlayer支持功能:

  • ExoUserPlayer 基本播放(默认关闭手势 亮度,音量,快进,等手势,支持自定义布局)
  • 自动适配适配TV。
  • 支持横屏和竖屏两种模式全屏。
  • 适配音频控制布局。
  • 支持广告视频预览(轻松实现,完美切换,<font color="red">可自定义</font>)。
  • 支持多种分辨率视频切换(已支持自定义布局样式)。
  • 缓存下载加密视频功能(边播变缓存轻松实现<font color="red">不是使用AndroidVideoCache</font>
  • 支持列表集合 播放视频(<font color="red">列表到详情播放完美过度</font>
  • 支持网络类型 提示是否播放(可自定义屏蔽)。
  • 支持视频加载布局, 错误布局,重播布局,提示布局自定义,更灵活实现自己布局样式。
  • 支持视频加速慢速播放(已支持自定义布局样式)参考demo自定义。
  • 支持多种视频封面图(两种模式封面图)。
  • 支持支持自定义MediaSource
  • 支持精简版和完整版,选择使用更丰富。
  • 增加离线下载辅助类ExoWholeDownLoadManger,ExoWholeDownloadTracker,ExoDownLoadManger,DownloadService()-->戳我)
  • 支持播放锁屏功能和控制布局显示显示动画效果.
  • 支持返回按钮和全屏按钮图标自定义。
  • 支持自定义视频封面布局.(视频封面图布局样式完美多样化)。
  • 支持视频实时进度(头条底部进度)。
  • 支持流式API方式调用。
  • 支持多种文件类型,MP4,M4A,WebM,Matroska,Ogg,WAV,MP3,MPEG-TS,MPEG-PS,FLV,ADTS (AAC),Flac,M3U8,mkv 等。
  • 支持自定义多种 http,Rtmp,Https,Cronet等协议。
<!--more-->

更新日志2.3.51→》戳我查看

一.引用类库

 repositories {
        jcenter()
        mavenCentral();
    }

dependencies {
   //完整版
    compile 'com.ycjiang:VideoPlayModule:2.3.61'
   //精简版(没有smoothstreaming,dash,hls,只有常规点播功能)
    compile 'com.ycjiang:VideoPlayModule-Lite:2.3.61'

}

提示:无法正常引用请在 repositories{ }添加已下代码 mavenCentral(url: "https://dl.bintray.com/ycjiang/ycjiang")

二.控件属性

基本使用如下

      <chuangyuan.ycj.videolibrary.widget.VideoPlayerView
              android:id="@+id/exo_play_context_id"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@android:color/transparent"
              />

1.控件属性

  <chuangyuan.ycj.videolibrary.widget.VideoPlayerView
        android:id="@+id/exo_play_context_id"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:controller_layout_id="@layout/simple_exo_playback_control_view"
        app:player_layout_id="@layout/simple_exo_view"
        app:player_replay_layout_id="@layout/custom_play_replay"
        app:player_error_layout_id="@layout/custom_play_error"
        app:player_hint_layout_id="@layout/custom_play_btn_hint"
        app:player_load_layout_id="@layout/custom_exo_play_load"
        app:player_gesture_audio_layout_id="@layout/custom_gesture_audio"
        app:player_gesture_bright_layout_id="@layout/custom_gesture_brightness"
        app:player_gesture_progress_layout_id="@layout/custom_gesture_pro"
        app:player_preview_layout_id="@layout/exo_default_preview_layout"
        app:resize_mode="fit"
        app:show_timeout="3000"
        app:surface_type="texture_view"
        app:fastforward_increment="0"
        app:rewind_increment="0"
        app:user_watermark="@mipmap/watermark_big"
        app:player_list="true"
        app:use_controller="true"
        app:player_fullscreen_image_selector="@drawable/custom_full_selector"
        app:player_back_image="@drawable/ic_back_custom"
         />

2.属性说明 自定义视图的可用属性:

| name | type | info | |-----------------------------------|-----------|---------------------------------------------------------------------------- | | surface_type | enum | 视频渲染类型 texture_view 和surface_view 枚举类型 默认surface_view |
| resize_mode | enum | 视频缩放渲染显示方式一共5种 | | | reference | 1.fit 正常模式 | | | reference | 2.fixed_16_9 保持的是视频的比例16:9 | | | reference | 3.fixed_4_3 保持的是视频比例4:3 |
| | reference | 4.fill 全屏模式,拉伸视频宽高 |
| | reference | 4.match 矩阵模式 | 0 | player_layout_id | reference | (播放器布局):目前默认布局 simple_exo_view.xml | | controller_layout_id | reference | 控制器布局 默认有四种布局 | | | reference | 1.simple_exo_playback_control_view.xml 视频封面控制布局下面,(默认) | | | reference | 2.simple_exo_playback_list_view.xml.xml 在列表播放使用控制布局 | | | reference | 3.simple_exo_playback_top_view.xml.xml 视频封面控制布局上面 | | | reference | 4.exo_playback_control_view.xml exo 提供默认风格 | | player_replay_layout_id | reference | 设置 自定义重播布局文件 | | player_error_layout_id | reference | 设置 自定义错误布局文件 | | player_hint_layout_id | reference | 设置 自定义非wifi提示布局文件 | | player_load_layout_id | reference | 设置 自定义视频加载布局文件 | | player_gesture_audio_layout_id | reference | 设置 自定义手势音频调节布局 | | player_gesture_bright_layout_id | reference | 设置 自定义手势亮度调节布局 | | player_gesture_progress_layout_id | reference | 设置 自定义手势进度调节布局 | | player_preview_layout_id | reference | 设置 自定义封面图布局(默认 exo_default_preview_layout.xml) | | player_list | boolean | 设置 是否指定列表播放 默认 false true 列表播放 | | player_fullscreen_image_selector | reference | 设置 自定义全屏按钮selector | | player_back_image | reference | 设置 自定义返回按钮图标 | | default_artwork | reference | 设置 封面占位图 | | show_timeout | integer | 设置 控制布局隐藏时间 默认值为3秒 | | fastforward_increment | integer | 设置 按钮设置快进增量,以毫秒为单位(exo控制布局使用) | | rewind_increment | integer | 设置 按钮设置快退增量,以毫秒为单位(exo控制布局使用) | | user_watermark | reference | 设置 水印图片 默认在右上角 |

  • 注意:

    1.列表播放只能选择texture_view 不能选择surface_view,详情页面播放推荐surface_view

    2.自定义全屏按钮selector

      <selector xmlns:android="http://schemas.android.com/apk/res/android">
           <item android:drawable="@drawable/ic_custom_full" android:state_checked="true" />
           <item android:drawable="@drawable/ic_custom_full_in" android:state_checked="false" />
      </selector>
    

    3.自定义封面图布局中,也包含封

3.快速自定义视频进度控件颜色

如何自定义视频进度控件--->戳我 在app的module的values 文件下-> colors.xml 文件里

  <!--视频加载缓存进度的面图控件。所以自定义封面图布局后,就不要再的控制布局使用封面图控件
                颜色-->
  <color name="timeBar_buffered_color">@color/light_green</color>
  <!--已经播放过视频的颜色-->
  <color name="timeBar_played_color">#c63020</color>
  <!--没有加载过进度的颜色-->
  <color name="timeBar_unplayed_color">@color/live_yellow</color>
  <!--视频进度圆点的颜色-->
  <color name="timeBar_scrubber_color">@color/colorAccent</color>
  

4.修改网络对话框提示文字内容

  app.strings.xml
  <string name="exo_play_reminder">您当前网络不是wifi,是否继续观看视频</string>
  <string name="exo_play_wifi_hint_no">提示</string>

5.开启竖屏全屏模式。

 ```
 VideoPlayerView.setVerticalFullScreen(true)
 ```
 或者
 ````
   exoPlayerManager = new VideoPlayerManager.Builder(VideoPlayerManager.TYPE_PLAY_GESTURE, videoPlayerView)
                 .setVerticalFullScreen(true)
 ````

6.在功能清单声明 AndroidManifest.xml

在activity节点 加上“android:configChanges="orientation|keyboardHidden|screenSize"”
 如下实例:
        <activity android:name="chuangyuan.ycj.yjplay.MainListActivity"
         android:configChanges="orientation|keyboardHidden|screenSize"
         android:screenOrientation="portrait">


  

3.JAVA 代码

1 播放控制类

1.ExoUserPlayer

2 VideoPlayerView 控件 可用方法

| name | type | info | |------------------------------------------------|-----------|---------------------------------------------------------------------------- | | setTitle("标题")

View on GitHub
GitHub Stars1.7k
CategoryContent
Updated10d ago
Forks303

Languages

C

Security Score

100/100

Audited on Mar 18, 2026

No findings