使用饺子播放器和ViewPager打造一个视频详情页的实现

2023-10-11 03:59

本文主要是介绍使用饺子播放器和ViewPager打造一个视频详情页的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JiaoZiVideoPlayer使用的是饺子播放器。官方介绍是高度自定义的安卓视频框架,这是Git地址。

·如果引入失败,检查是否添加了java8的配置

·activity的xml布局如下

·效果图

 我是直接下载源码引入依赖的的

implementation project(':jiaozivideoplayer')
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.android.support:design:27.1.0'
public class MPFOURActivity extends AppCompatActivity {private JzvdStd jzvdStd;Jzvd.JZAutoFullscreenListener fullscreenListener;SensorManager mSensorManager;private ViewPager mViewPager;private TabLayout mTabLayout;private MyMedFragmentAdapter medFragmentAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_mpfour);initView();setVideo();setListener();}private void initView(){getSupportActionBar().setDisplayHomeAsUpEnabled(true);getSupportActionBar().setDisplayShowHomeEnabled(true);getSupportActionBar().setDisplayShowTitleEnabled(true);getSupportActionBar().setDisplayUseLogoEnabled(false);jzvdStd=findViewById(R.id.videoplayer);mTabLayout=findViewById(R.id.comment_tab);mViewPager=findViewById(R.id.comment_like);medFragmentAdapter=new MyMedFragmentAdapter(getSupportFragmentManager());mViewPager.setAdapter(medFragmentAdapter);mTabLayout.setupWithViewPager(mViewPager);}private void setVideo(){jzvdStd.setUp("http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4", "饺子闭眼睛",jzvdStd.SCREEN_NORMAL/*,JzvdStd.SCREEN_STATE_ON*/);Glide.with(this).load("http://p.qpic.cn/videoyun/0/2449_43b6f696980311e59ed467f22794e792_1/640").into(jzvdStd.thumbImageView);}private void setDefinition(){/*** 给你要展示的视频准备多套清晰度的地址来调用* 自己写清晰度切换的UI*/}private void setListener(){fullscreenListener=new Jzvd.JZAutoFullscreenListener();mSensorManager= (SensorManager) getSystemService(SENSOR_SERVICE);}@Overridepublic void onBackPressed() {if(Jzvd.backPress()){return;}super.onBackPressed();}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case android.R.id.home:finish();break;}return super.onOptionsItemSelected(item);}@Overrideprotected void onPause() {super.onPause();mSensorManager.unregisterListener(fullscreenListener);Jzvd.clearSavedProgress(this, null);Jzvd.goOnPlayOnPause();}@Overrideprotected void onResume() {super.onResume();Sensor accelerometerSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);mSensorManager.registerListener(fullscreenListener, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL);Jzvd.goOnPlayOnResume();}
}

方法名字写的比较明显了,就不加注释了

然后是Adapter里的代码

public class MyMedFragmentAdapter extends FragmentPagerAdapter {private String[] mTitles = new String[]{"相关", "评论"};public MyMedFragmentAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {if (position == 1) {return new MedFragment2();}return new MedFragment1();}@Overridepublic int getCount() {return mTitles.length;}//设置tab的标题@Nullable@Overridepublic CharSequence getPageTitle(int position) {return mTitles[position];}
}

比较适合入门的例子,给自己做一个记录。

这篇关于使用饺子播放器和ViewPager打造一个视频详情页的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/185351

相关文章

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.