当前位置: 首页 > article >正文

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

短视频尤其短剧的爆火关于音视频方面的需要越来越多,相关的框架、三方依赖技术也越来越成熟,本篇文章也是基于当前短剧高需要的背景来撰写,相信不少开发者也研究开发了相关的类库,也对此写了很多文章,当然我也是其中一位,本篇文章是基于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.kler.cn/a/449901.html

相关文章:

  • CPU算法分析LiteAIServer裸土检测算法如何应用在农田科学管理中?
  • 基于Spring Boot的九州美食城商户一体化系统
  • SWIFT基本使用
  • c# 后台任务自动执行
  • 本地摄像头视频流在html中打开
  • 写作词汇积累:纰漏、坎肩、颠三倒四、隔阂
  • 动手学深度学习11.2. 凸性-笔记练习(PyTorch)
  • 一篇文章学会HTML
  • 最适合智能体的身份认证技术:对比OpenID Connect、API keys、did:wba
  • 类class:继承类后同名方法是覆盖还是去哪了呢,类中this指向问题等
  • 汽车IVI中控开发入门及进阶(44):杰发科智能座舱芯片
  • 【CSS】优化动画性能
  • rk3568制冷项目驱动开发流程汇总(只适用于部分模块CIF DVP等,自用)
  • 【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
  • 【时间之外】IT人求职和创业应知【74】-运维机器人
  • 基于微信小程序的国产动漫论坛系统
  • css让按钮放在最右侧
  • 初学stm32 --- NVIC中断
  • logback日志控制台打印与写入文件
  • 如何训练Stable Diffusion 模型
  • 【Linux】结构化命令:while命令
  • unipp中使用阿里图标,以及闭坑指南
  • 端口状态检查工具portchecker.io
  • 【OceanBase 诊断调优】—— packet fly cost too much time 的根因分析
  • STM32——“SPI Flash”
  • CentOS-stream-9安装ansible