IPlayer Save

爱播支持列表播放、全屏播放、重力自动旋转、清晰度切换、播放引擎切换、自定义主题颜色、窗口播放等

Project README

IPlayer



爱播支持列表播放、全屏播放、重力自动旋转、清晰度切换、播放引擎切换、自定义主题颜色等。

特点

  • 全屏重力感应自动旋转
  • 清晰度切换(高清/超清/蓝光)
  • 自定义播放引擎(ijkPlayer/ExoPlayer/MediaPlayer/Vitamio)
  • 视频列表播放(ListView/RecyclerView)
  • 自定义主题颜色
  • 可拖动窗口播放
  • 拖动调节音量、亮度
  • 支持Https视频源
  • 多布局嵌套播放

属性说明

属性 功能 默认状态
enableTitleBar 是否启用标题栏 boolean
enableBottomBar 是否启用控制栏 boolean
enableBottomProgressBar 是否启用底部进度条 boolean
enableEnlarge 是否启用全屏按钮 boolean
enableClarity 非全屏模式下是否启用播放源切换 boolean
enableShowWifiDialog 非wifi条件下播放视频是否提示用户 boolean
enableCache 是否启用缓存 boolean
enableTinyWindow 视频列表中是否启用小窗口播放 boolean
tinyWindowWidth 小窗口宽度 dimension 默认为普通窗口的2/5
tinyWindowHeight 小窗口高度 dimension 默认为普通窗口的2/5
screenType 普通窗口中,视频内容显示的方式 adapter/fillCrop/fillParent/original adapter
screenTypeFull 全屏窗口中,视频内容显示的方式 adapter/fillCrop/fillParent/original adapter
screenTypeTiny 小窗口中,视频内容显示的方式 adapter/fillCrop/fillParent/original adapter
orientationFullScreen 全屏模式中,Activity的方向 vertical/horizontal 重力感应自动旋转

快速引入项目

需要使用的module中添加引用

dependencies {
    implementation 'com.hacknife:iplayer:1.2.5'
    //可选
    implementation 'com.hacknife.ijkplayer:ijkplayer-java:0.8.8'
    implementation 'com.hacknife.ijkplayer:ijkplayer-exo:0.8.8'
    implementation 'com.hacknife.ijkplayer:ijkplayer-armv7a:0.8.8'
    implementation 'com.hacknife.ijkplayer:ijkplayer-armv5:0.8.8'
    implementation 'com.hacknife.ijkplayer:ijkplayer-arm64:0.8.8'
    implementation 'com.hacknife.ijkplayer:ijkplayer-x86:0.8.8'
    implementation 'com.hacknife.ijkplayer:ijkplayer-x86_64:0.8.8'

    implementation 'com.google.android.exoplayer:exoplayer:2.9.1'

    implementation 'com.hacknife.vitamio:vitamio-java:5.2.3'
    implementation 'com.hacknife.vitamio:vitamio-armv7a:5.2.3'
    implementation 'com.hacknife.vitamio:vitamio-x86:5.2.3'
    implementation 'com.hacknife.vitamio:vitamio-arm64:5.2.3'

    implementation 'com.danikula:videocache:2.7.1'

}

使用说明

Step1.配置播放器主题色

在APP主题中添加如下属性

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="iplayer_primary_color">#00aeff</item>
    </style>

Step2.设置封面加载器

实现ImageLoader中的方法

public class CoverLoader implements ImageLoader {
    @Override
    public void onLoadCover(ImageView cover, String coverUrl) {
        Glide.with(cover).load(coverUrl).into(cover);
    }
}

Step3.播放器生命周期管理

设置图片加载器和添加爱播生命周期管理器,播放引擎可选,如果不设置默认使用系统自带的MediaPlayer

    Player.setPlayerEngine(new IjkEngine());
    Player.setImageLoader(new CoverLoader());
    Application.registerActivityLifecycleCallbacks(new PlayerLifecycleCallbacks());

Step4.添加布局

    <com.hacknife.iplayer.IPlayer
        android:id="@+id/player"
        android:layout_width="match_parent"
        android:layout_height="match_parent"  />

Step5.设置数据源

        DataSource source = new DataSource.Builder()
                .url("标清", Constant.url[0])
                .url("高清", Constant.url[1])
                .url("超清", Constant.url[2])
                .url("蓝光", Constant.url[3])
                .title(Constant.title[0])
                .cover(Constant.img[0])
                .build();
        player.setDataSource(source, ContainerMode.CONTAINER_MODE_NORMAL);
        player.setDataSource(String url, String title, String cover, ContainerMode containerMode, int position)

Step6.返回

如果启用了全屏播放或者小窗口播放,需要实现以下方法

    public void onBackPressed() {
        if (Player.backPress()) return;
        super.onBackPressed();
    }

Step7.AndroidManifest

    <activity
            android:name=".DemoActivity"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:screenOrientation="portrait"/>

更多使用方式请参考demo

扫码体验一下吧




感谢浏览

如果你有任何疑问,请加入QQ群,我将竭诚为你解答。欢迎Star和Fork本仓库,当然也欢迎你关注我。
Image Text

Open Source Agenda is not affiliated with "IPlayer" Project. README Source: iwdael/IPlayer
Stars
44
Open Issues
0
Last Commit
2 years ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating