IjkPlayerView使用
发布日期:2021-06-28 19:37:30 浏览次数:2 分类:技术文章

本文共 4488 字,大约阅读时间需要 14 分钟。

一.项目的引入

1.1源码地址

1.2依赖包的引入

如果你项目是引用support包如下引入项目即可:

    //视频播放框架

    implementation 'com.github.Rukey7:IjkPlayerView:v1.0.4'

由于我自己的项目是用到了androidx包,引入各种报错,由于源码开发版本较低且用了support包到时版本不一致,我在源码的基础上新增了androidx的依赖包;

源码下载:

build文件以及settings文件的修改

implementation project(path: ':playerview')

include ':app', ':common',':playerview'

二.源码的调用

2.1在项目的AndroidManifest.xml文件中队activity进行如下配置

2.2把IjkPlayerView作为一个控件添加到你的布局中

2.3Activity设置

@Override    protected void onResume() {        super.onResume();        mPlayerView.onResume();    }    @Override    protected void onPause() {        super.onPause();        mPlayerView.onPause();    }    @Override    protected void onDestroy() {        super.onDestroy();        mPlayerView.onDestroy();        //PS:如果将设置只显示全屏状态,进行如下设置        //设置结束时返回的方向,防止返回上个界面先横再变竖屏体验感不好        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);    }    @Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        mPlayerView.configurationChanged(newConfig);    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (mPlayerView.handleVolumeKey(keyCode)) {            return true;        }        return super.onKeyDown(keyCode, event);    }    @Override    public void onBackPressed() {        if (mPlayerView.onBackPressed()) {            return;        }        super.onBackPressed();    }

2.4弹幕发送的调用

//写入弹幕的资源流        InputStream stream = null;        try {            stream = getAssets().open("custom.json");        } catch (IOException e) {            e.printStackTrace();        }        //设置视频播放前的图片预览        Glide.with(this).load(IMAGE_URL).fitCenter().into(mPlayerView.mPlayerThumb);        mPlayerView.init()                .setTitle("这是个跑马灯TextView,标题要足够长才会跑。-(゜ -゜)つロ 乾杯~")                .enableDanmaku()//设置使用弹幕//                .setDanmakuCustomParser(new AcFunDanmakuParser(), AcFunDanmakuLoader.instance(), null)                // 注意 setDanmakuCustomParser() 要在 setDanmakuSource() 前调用                //自定义弹幕解析器:解析器、加载器、转换器                .setDanmakuCustomParser(new DanmakuParser(), DanmakuLoader.instance(), DanmakuConverter.instance())                .setDanmakuSource(stream)//设置弹幕资源                .setVideoPath(VIDEO_URL)//播放地址                //弹幕回调监听                .setDanmakuListener(new OnDanmakuListener
() { @Override public boolean isValid() { // TODO: 这里可以控制全屏模式下的是否可以发射弹幕,返回 true 才能发射,可判断用户是否登录 Log.w("CustomDanmakuActivity", "准备发射弹幕"); return true; } @Override public void onDataObtain(DanmakuData data) { // 添加个人信息 data.userName = "LONG"; data.userLevel = 2; // 这个转换的数据格式 DanmakuData 需要配合 DanmakuConverter 来实现,如果没有设置转换器则默认返回 BaseDanmaku Log.e("CustomDanmakuActivity", data.toString()); // GsonHelper.object2JsonStr(data)转换为Json字符串,可以直接保存到文件或服务器,参考{assets/custom.json}文件 Log.e("CustomDanmakuActivity", GsonHelper.object2JsonStr(data)); } }); //发送弹幕 mIvSend.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mPlayerView.sendDanmaku(mEditText.getText().toString(), false); mEditText.setText(""); _closeSoftInput(); } });

2.5视频源的设置

mPlayerView.init()                .setTitle("这是个跑马灯TextView,标题要足够长才会跑。-(゜ -゜)つロ 乾杯~")                .setSkipTip(1000*60*1)//设置跳转目标进度,单位:ms                .enableDanmaku()                .setDanmakuSource(getResources().openRawResource(R.raw.bili))                //设置流畅、清晰、高清、超清、1080P五种视频资源                .setVideoSource(null, VIDEO_URL, VIDEO_HD_URL, null, null)                //选择视频源(上面五选一依次分别为:流畅、清晰、高清、超清和1080P)                .setMediaQuality(IjkPlayerView.MEDIA_QUALITY_HIGH);

设置的视频资源,无需设置.setVideoPath

2.6强制横(全)屏播放

mPlayerView.init()                .alwaysFullScreen()//设置只显示全屏状态                .enableOrientation()//使能视频翻转                .setVideoPath(VIDEO_URL)//视频地址                .enableDanmaku()//使用弹幕                .setDanmakuSource(getResources().openRawResource(R.raw.bili))//设置弹幕资源                .setTitle("这是个跑马灯TextView,标题要足够长才会跑。-(゜ -゜)つロ 乾杯~")                .start();

 

转载地址:https://blog.csdn.net/xxdw1992/article/details/109568852 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:百度文字识别申请与下载
下一篇:安卓调用科大讯飞语音

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月09日 09时35分12秒