webview和H5来实现的android短视频(短剧)音视频播放依赖控件

news/2024/12/23 11:12:08/

短视频尤其短剧的爆火关于音视频方面的需要越来越多,相关的框架、三方依赖技术也越来越成熟,本篇文章也是基于当前短剧高需要的背景来撰写,相信不少开发者也研究开发了相关的类库,也对此写了很多文章,当然我也是其中一位,本篇文章是基于android来进行短视频的加载播放的。

本篇文章介绍的依赖库是基于android webview和H5来实现的,实现主要功能:

1、全屏/小屏视频的单个(或多个连续)播放;

2、播放下一个视频;

3、横屏-竖屏切换;

4、音量调节[0,1];

5、视频播放速度调节;

6、视频播放进度及左右滑动(或进度条)来调节播放进度;

7、片尾可控制加载广告等延时播放下一条视频的操作;

8、暂停可控制加载广告等操作;

9、添加除视频的其他模块布局内容。

功能中大部分都已经封装好,不需要使用者再度进行开发操作,开发者可以设置返回按钮、视频标题、进度条样式、播放/暂停图标、横屏/竖屏图标、下一个图标,开发者可以使用依赖控件的中的布局进行广告等延时操作。

以下是依赖控件的示例视频:

ds-CSDN直播

依赖使用操作:

https://download.csdn.net/download/qq_41294019/90167109

在上面链接下载依赖到本地,在androidstudio中app的build.gradle里面添加如下:

api fileTree(dir: 'libs', include: ['ProScreenMediaPlayer.aar'])

 新建Activity继承ProScreenMediaPlayerActivity并实现其中的方法,如下就可以简单的实现一个只有视频播放的模块了,视频可以是全屏(竖屏/横屏)的,小屏视频可以添加推荐等模块的布局内容。

finishMediaPlayer() 该方法用于点击返回按钮退出当前页面。

class ProScreenShowActivity : ProScreenMediaPlayerActivity() {override fun initData() {var videoPath = (Environment.getExternalStorageDirectory().absoluteFile.absolutePath+ File.separator + Environment.DIRECTORY_DCIM+ File.separator + "Camera/")videoUrls = arrayListOf<String>("${videoPath}SVID_20241219_184142_2.mp4","${videoPath}SVID_20241219_184142_3.mp4","${videoPath}SVID_20241219_184142_4.mp4","${videoPath}SVID_20241219_184142_1.mp4")videoUrlFirst = videoUrls[3]videoTitles = arrayListOf<String>("示例设置标题一","示例设置标题二","示例设置标题三","示例设置标题四")}override fun finishMediaPlayer() {}}

使用doLoadAdView()来获取FrameLayout布局加载广告等延时操作,结束后需要调用reqPlayNextVideo()方法播放下一个视频,使用doLoadOtherContView()来加载除视频等其他的内容,如推荐列表。

以上就是本篇介绍的基于android短视频(短剧)的音视频播放内容。


http://www.ppmy.cn/news/1557450.html

相关文章

BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)

Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测&#xff08;多输入单输出&#xff09; 目录 Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测&#xff08;多输入单输出&#xff09;分类效果基本描述…

基于微信小程序的绘画学习平台

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

无人机航测VS传统测绘

无人机航测系统的优点 机动灵活&#xff0c;作业周期短&#xff1a; 无人机航测系统能够迅速响应测绘需求&#xff0c;不受地形和交通限制&#xff0c;可以灵活调整航线&#xff0c;作业周期短。 无人机体积小&#xff0c;噪音小&#xff0c;可以垂直起降、悬停、侧飞、倒飞…

Android -- 双屏异显之方法二

Android – 双屏异显之方法二: DisplayManager PS: 1. 使用改方法主板需连接至少两个输出显示屏&#xff1b; 2. 副屏内部实现与MediaRouter下一样&#xff1b;使用方法 # 主屏activity内&#xff1a; private SecondDisplay secondDisplay;private void dualScreen3288() {D…

大数据分析案例-基于XGBoost算法构建笔记本电脑价格预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

保姆级教程Docker部署RabbitMQ镜像

目录 1、创建挂载目录 2、运行RabbitMQ容器 3、Compose运行RabbitMQ容器 4、开启界面插件 5、查看RabbitMQ运行状态 6、常见问题处理 1、创建挂载目录 # 创建宿主机rabbitMQ挂载目录 sudo mkdir -p /data/docker/rabbitmq/log# 修改log目录权限 sudo chmod 777 /data/do…

C++9--前置++和后置++重载,const,日期类的实现(对前几篇知识点的应用)

目录 1.前置和后置重载 2.const成员 3.日期类的实现 1.前置和后置重载 #include<iostream> using namespace std;class Date { public:Date(int year 2024, int month 1, int day 1){_year year;_month month;_day day;}//前置&#xff1a;返回1之后的结果//注意…

Vue.js前端框架教程8:Vue消息提示ElMessage和ElMessageBox

文章目录 ElMessageElMessageBox在 Vue 中,ElMessage 和 ElMessageBox 是 Element UI 和 Element Plus 提供的两个非常有用的组件,用于显示消息提示和弹窗对话框。 ElMessage ElMessage 是用于显示全局消息提示的组件。它可以显示不同类型的消息,如成功、警告、错误等。以…