美文网首页Android开发经验谈Android开发Android开发
视频播放器-IPlayer-列表播放、全屏播放、重力自动旋转、清

视频播放器-IPlayer-列表播放、全屏播放、重力自动旋转、清

作者: Hacknife | 来源:发表于2018-12-04 10:35 被阅读24次

    爱播支持列表播放、全屏播放、重力自动旋转、清晰度切换、播放引擎切换、自定义主题颜色等。
    https://github.com/hacknife/IPlayer

    G_1203210711.gif G_1203210804.gif G_1203210908.gif G_1203211011.gif G_1203211119.gif G_1203211240.gif G_1203211322.gif G_1203212834.gif G_1203212914.gif

    特点

    • 全屏重力感应自动旋转
    • 清晰度切换(高清/超清/蓝光)
    • 自定义播放引擎(ijkPlayer/ExoPlayer/MediaPlayer)
    • 视频列表播放(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.4'
        //可选
        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-86:0.8.8'
        implementation 'com.hacknife.ijkplayer:ijkplayer-86_64:0.8.8'
    }
    

    使用说明

    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

    扫码体验一下吧

    qrcode.png

    相关文章

      网友评论

        本文标题:视频播放器-IPlayer-列表播放、全屏播放、重力自动旋转、清

        本文链接:https://www.haomeiwen.com/subject/hxfmcqtx.html