Android之播放本地视频和Url视频方法

一、播放本地视频文件

根据文件路径在浏览器中播放,可用于视频预览等场景

效果:

用浏览器播放本地视频

文件路径例子:
/storage/emulated/0/Android/data/com.custom.jfrb/files/Movies/1697687179497.mp4

File file = new File("文件路径");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);Uri contentUri = FileProvider.getUriForFile(UploadVideoActivity.this, getContext().getPackageName() + ".provider", file);intent.setDataAndType(contentUri, "video/*");
} else {intent.setDataAndType(Uri.fromFile(file), "video/*");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
startActivity(intent);

二、播放Url视频(GSYVideoPlayer类的使用)

效果:

播放Url视频

1、导入依赖

implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.1.7-release-jitpack'

2、xml文件

<com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayerandroid:id="@+id/video_player"android:layout_width="match_parent"android:layout_height="220dp" />

3、Activity中调用

(1) 绑定控件

@InjectView(id = R.id.video_player)
StandardGSYVideoPlayer mVideoPlayer;

(2)播放视频
视频Url例子:https://recordcdn-qk.jfdaily.com/upload/vod/user1694515885005019/1697678251135382/preview/video.mp4

//播放横屏视频boolean setUp = mVideoPlayer.setUp("视频Url", true, "名字");
//设置封面
//        if (setUp) {
//            Glide.with(this).load(productItem.getCapture()).into((ImageView) mVideoPlayer.getThumbImageView());
//        }
//隐藏自带的标题和返回键
mVideoPlayer.getTitleTextView().setVisibility(View.GONE);mVideoPlayer.getBackButton().setVisibility(View.GONE);//全屏按键
mVideoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mVideoPlayer.startWindowFullscreen(ProductDetailActivity.this,false,true);}
});
GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_DEFAULT);
//根据视频尺寸,自动选择竖屏全屏或者横屏全屏
mVideoPlayer.setAutoFullWithSize(true);
//全屏动画
mVideoPlayer.setShowFullAnimation(true);
//开始播放
mVideoPlayer.startPlayLogic();

(3)相关生命周期中添加操作

@Overridepublic void onBackPressed() {if (GSYVideoManager.backFromWindowFull(this)){return;}super.onBackPressed();}@Overrideprotected void onResume() {super.onResume();mVideoPlayer.onVideoResume();}@Overrideprotected void onPause() {super.onPause();mVideoPlayer.onVideoPause();}@Overrideprotected void onDestroy() {super.onDestroy();GSYVideoADManager.releaseAllVideos();}

三、持续更新中…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3568笔记四:基于TensorFlow花卉图像分类部署

若该文为原创文章&#xff0c;转载请注明原文出处。 基于正点原子的ATK-DLRK3568部署测试。 花卉图像分类任务&#xff0c;使用使用 tf.keras.Sequential 模型&#xff0c;简单构建模型&#xff0c;然后转换成 RKNN 模型部署到ATK-DLRK3568板子上。 在 PC 使用 Windows 系统…

使用telegram机器人发送通知

文章目录 背景1 创建机器人2 与机器人的会话3 调用API让机器人发送消息 背景 在训练深度学习模型时&#xff0c;除了粗略估计外&#xff0c;很难预测训练何时结束。此外&#xff0c;我们可能还想随时随地查看训练情况&#xff0c;如果每次都需要登录回服务器的话并不方便。因此…

Kubernetes与Docker和Containerd是个什么关系

文章目录 小结描述实例参考 小结 Kubernetes 在不停地迭代演进&#xff0c;Kubernetes停止使用Docker做为Container Runtime&#xff0c;改为Containerd或者CRI-O等与与Container Runtime Interface (CRI)更兼容的Container Runtime&#xff0c;进行了小结。 容器组&#xff…

wordpress网站部署了ssl证书之后就排版混乱了

刚给自己的小网站部署了SSL证书&#xff0c;之后就发现https访问主页竟然乱套了。在手机上访问却是正常的。 直接上解决方案&#xff1a; 编辑网站根目录下的wp-config.php文件 在自定义文本处添加以下代码&#xff1a; if ($_SERVER[HTTP_X_FORWARDED_PROTO] https) $_SE…

PHP-FFMpeg 操作音视频

✨ 目录 &#x1f388; 安装PHP-FFMpeg&#x1f388; 视频中提取一张图片&#x1f388; 视频中提取多张图片&#x1f388; 调整视频大小&#x1f388; 视频添加水印&#x1f388; 生成音频波形&#x1f388; 音频转换&#x1f388; 给音频添加元数据&#x1f388; 拼接多个音视…

利用ArcGIS获取每一个冰川的中心位置经纬度坐标:要素转点和要素折点转点的区别

问题概述&#xff1a;下图是天山地区的冰川的分布&#xff0c;我们可以看到每一条冰川是一个面要素&#xff0c;要求得到每一个冰川&#xff08;面要素&#xff09;的中心经纬度坐标。 1.采用要素转点功能 选择工具箱的【数据管理工具】-【要素】-【要素转点】。完成之后再采用…

计算机基础知识36

数据库数据的演变史 ATM&#xff1a;1. 把数据都存在了文件中&#xff0c;文件名不规范 kevin|123 kevin123 kevin*123 2. 存储数据的文件越来越多&#xff0c;放在db文件夹&#xff0c;占用空间&#xff0c;查询存储不方便&#xff0c;速度慢 # 数据库软件能解…

lnmp架构部署Discuz论坛并配置重定向转发

lnmp架构部署Discuz论坛并配置重定向转发 文章目录 lnmp架构部署Discuz论坛并配置重定向转发环境说明部署Discuz论坛系统下载Discuz论坛系统代码包&#xff0c;官网地址如下&#xff1a;部署Discuz论坛系统步骤&#xff1a;解压安装Discuz源码包配置虚拟主机进入Discuz安装界面…

Janus: 逆向思维,以数据为中心的MoE训练范式

文章链接&#xff1a;Janus: A Unified Distributed Training Framework for Sparse Mixture-of-Experts Models 发表会议: ACM SIGCOMM 2023 (计算机网络顶会) 目录 1.背景介绍all-to-allData-centric Paradigm 2.内容摘要关键技术Janus细粒度任务调度拓扑感知优先级策略预取…

Android推送问题排查

针对MobPush智能推送服务在使用过程中可能出现的问题&#xff0c;本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送排查 排查TCP在线收不到推送时&#xff0c;我们先通过客户端的RegistrationId接口获取设备的唯一标识 示例&#xff1a; MobPush…

修改 Stable Diffusion 使 api 接口增加模型参数

参考&#xff1a;https://zhuanlan.zhihu.com/p/644545784 1、修改 modules/api/models.py 中的 StableDiffusionTxt2ImgProcessingAPI 增加模型名称 StableDiffusionTxt2ImgProcessingAPI PydanticModelGenerator("StableDiffusionProcessingTxt2Img",StableDiff…

代码随想录算法训练营第五十六天 | 1143.最长公共子序列、1035.不相交的线 、53. 最大子序和 动态规划

1143.最长公共子序列 视频讲解&#xff1a;动态规划子序列问题经典题目 | LeetCode&#xff1a;1143.最长公共子序列_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 1035.不相交的线 视频讲解&#xff1a;动态规划之子序列问题&#xff0c;换汤不换药 | Leet…

高数二阶导数例子

例子&#xff1a; 当 x 0 x 0 x0时 f(x) 1&#xff0c;当 x ≠ 0 x \ne 0 x0时&#xff0c; f ( x ) sin ⁡ x x f(x) \frac{\sin x}{x} f(x)xsinx​, 求f’(x)。 解&#xff1a; 二阶导数是导数的导数&#xff0c;按照定义为&#xff1a; f ′ ′ ( x ) lim ⁡ x →…

基于Java的垃圾分类管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

【常用的Git命令】

Git是一个版本控制系统&#xff0c;它拥有众多的命令。以下是一些常用的Git命令&#xff1a; 配置相关命令: git config --global user.name "Your Name"&#xff1a;设置用户姓名git config --global user.email "youremailexample.com"&#xff1a;设置用…

安卓逆向之抽象函数public abstract的hook定位处理

一、抽象类调用过程 1、定义接口 public abstract class AbsNetHelper{public abstract int X(int x,int y); }2、其他类调用 public class f extends AbsNetHelper {public abstract int X(int x,int y){ return xy;} }二、如何HOOK 想hook调用AbsNetHelper类的X抽…

linux uboot kenerl filesystem关系

每次烧写都是uboot&#xff0c;image&#xff0c;roots&#xff0c;为什么不整一套&#xff0c;为什么分开 什么是uboot 什么是内核&#xff0c;三者为什么分开 如果你上网去搜一下&#xff0c;你会发现这样的答案 另注&#xff1a;本文含有大量的错误和意测成份&#xff0c…

Linux系统编程04

进程的概念 进程&#xff08;动态&#xff09;是一个正在运行的程序&#xff08;静态&#xff09; 多道程序设计缺点&#xff1a; &#xff08;1&#xff09;缺乏隔离&#xff0c;各个程序之间可以直接访问&#xff0c;使用对方的数据 &#xff08;2&#xff09;内存使用率低&a…

香港服务器在国内访问太慢怎么能提高?

​  一直以来&#xff0c;全球化业务需求的增长是跟随着蓬勃向上的互联网而发展的。有了网络&#xff0c;海外贸易就在鼠标的轻点中完成。而IDC市场中的香港服务器也因为免备案政策的特性&#xff0c;开始逐渐成为企业想要跨越地域壁垒而考虑的对象。但在使用过程中&#xff…

新手如何找到Docker容器(redis)中的持久化文件?

具体步骤 要查看Docker容器的dump.rdb和appendonly.aof文件&#xff08;如果启用了AOF持久化&#xff09;的位置&#xff0c;我们需要知道容器中Redis配置文件的内容或者容器的数据卷的挂载位置。 这里是一般步骤&#xff1a; 查找容器的数据卷挂载位置 使用docker inspect命令…