uniapp 画中画悬浮窗(视频) Ba-VideoPip

这篇具有很好参考价值的文章主要介绍了uniapp 画中画悬浮窗(视频) Ba-VideoPip。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介(下载地址)

Ba-VideoPip 是一款画中画方式的视频悬浮窗插件。支持点播、直播;支持官方、三方播放器无缝切换;支持动态刷新(如切换视频或进度)。

  • 支持点播、直播
  • 支持官方、三方播放器无缝切换
  • 支持动态刷新(如切换视频或进度)
  • 支持检测是否支持画中画
  • 支持检测画中画开关是否打开
  • 支持检测画中画是否打开(本插件)
  • 支持页面关闭画中画
  • 支持监听事件,如关闭、返回、视频播放完成等

截图展示

uniapp 画中画悬浮窗(视频) Ba-VideoPip

使用方法

script 中引入组件

	const videoPip = uni.requireNativePlugin('Ba-VideoPip')

script 中调用(示例参考,可根据自己业务和调用方法自行修改)

	const videoPip = uni.requireNativePlugin('Ba-VideoPip')
		export default {
		data() {
			return {
				msgList: [],
				currentTime: 0,
				url: '测试链接1.mp4',
				urls: [
					"测试链接1.mp4",
					"测试链接2.m3u8"
				],
				custom: "/pages/video/video"
			}
		},
		methods: {
			startPip(url = this.url) {
				let that = this;
				videoPip.startPip({
						url: url, //视频地址
						currentTime: this.currentTime, //当前播放时长
						isLive: false, //是否是直播,默认false
						custom: this.custom, //自定义参数
					},
					res => {
						console.log(res);
						uni.showToast({
							title: res.msg,
							icon: "none",
							duration: 3000
						})
					});
			},
			restart() { //重新播放,(也可更改参数,用于切换)
				let that = this;
				videoPip.restart({
						url: this.url,
						currentTime: this.currentTime
					},
					res => {
						console.log(res);
						uni.showToast({
							title: res.msg,
							icon: "none",
							duration: 3000
						})
					});
			},
			isSupportPip() {//是否支持画中画
				let that = this;
				videoPip.isSupportPip(
					res => {
						console.log(res);
						if (res.data) {
							uni.showToast({
								title: "isSupportPip:" + res.data.isSupportPip,
								icon: "none",
								duration: 3000
							})
						} else {
							uni.showToast({
								title: res.msg,
								icon: "none",
								duration: 3000
							})
						}
					});
			},
			isOpenEnable() {//画中画开关是否打开
				let that = this;
				videoPip.isOpenEnable(
					res => {
						console.log(res);
						if (res.data) {
							uni.showToast({
								title: "isOpenEnable:" + res.data.isOpenEnable,
								icon: "none",
								duration: 3000
							})
						} else {
							uni.showToast({
								title: res.msg,
								icon: "none",
								duration: 3000
							})
						}
					});
			},
			isStart() {//画中画是否打开(本插件)
				let that = this;
				videoPip.isStart(
					res => {
						console.log(res);
						if (res.data) {
							uni.showToast({
								title: "isStart:" + res.data.isStart,
								icon: "none",
								duration: 3000
							})
						} else {
							uni.showToast({
								title: res.msg,
								icon: "none",
								duration: 3000
							})
						}
					});
			},
			closePip() { //关闭画中画
				let that = this;
				videoPip.closePip(
					res => {
						console.log(res);
						uni.showToast({
							title: res.msg,
							icon: "none",
							duration: 3000
						})
					});
			},
		}
	}

后台时点击事件监听

在应用生命周期app.vue的onLaunch事件中设置监听:

        onLaunch: function() {
			var globalEvent = uni.requireNativePlugin('globalEvent');
			globalEvent.addEventListener('baVideoPipEvent', function(e) {
				console.log('baVideoPipEvent' + JSON.stringify(e));
				//示例:{"url":"测试地址1.mp4","action":3,"custom":"/pages/video/video","currentTime":0}
				//url:视频地址
				//action: 1:关闭 2:放大返回 3:播放完成
				//currentTime: 当前播放时间,仅action=2有效
				//custom:自定义参数
			});
		},
		onShow: function() {
		},
		onHide: function() {
		}

api 列表

方法名 说明
startPip 打开画中画
isSupportPip 是否支持画中画
isOpenEnable 画中画开关是否打开
isStart 是否已经打开
restart 重新播放,(也可更改参数,用于切换)
closePip 关闭画中画

startPip 方法参数

打开画中画

属性名 类型 必填 默认值 说明
url String true 视频地址
currentTime Number true 0 当前播放时长(毫秒)
isLive Boolean false false 是否是直播,默认false
custom String true 自定义参数

restart 方法参数

重新播放,(也可更改参数,用于切换),参数同 startPip

系列插件

图片选择插件 Ba-MediaPicker (文档)

图片编辑插件 Ba-ImageEditor (文档)

文件选择插件 Ba-FilePicker (文档)

应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify(文档)

应用未读角标插件 Ba-Shortcut-Badge (文档)

应用开机自启插件 Ba-Autoboot(文档)

扫码原生插件(毫秒级、支持多码)Ba-Scanner-G(文档)

扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner(文档)

动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar(文档)

原生sqlite本地数据库管理 Ba-Sqlite(文档)

安卓保活插件(采用多种主流技术) Ba-KeepAlive(文档)

安卓快捷方式(桌面长按app图标) Ba-Shortcut(文档)

自定义图片水印(任意位置) Ba-Watermark(文档)

最接近微信的图片压缩插件 Ba-ImageCompressor(文档)

视频压缩、视频剪辑插件 Ba-VideoCompressor(文档)

动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon(文档)

原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast(文档)

图片涂鸦、画笔 Ba-ImagePaint(文档)

pdf阅读(手势缩放、显示页数) Ba-Pdf(文档)

声音提示、震动提示、语音播报 Ba-Beep(文档)

websocket原生服务(自动重连、心跳检测) Ba-Websocket(文档)

短信监听(验证码) Ba-Sms(文档)

智能安装(自动升级) Ba-SmartUpgrade(文档)

监听系统广播、自定义广播 Ba-Broadcast(文档)

监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener(文档)

全局置灰、哀悼置灰(可动态、同时支持nvue、vue) Ba-Gray(文档)

获取设备唯一标识(OAID、AAID、IMEI等) Ba-IdCode(文档)

实时定位(系统、后台运行、支持息屏)插件 Ba-Location(文档)

窗口小工具、桌面小部件、微件 Ba-AppWidget(文档)

画中画悬浮窗(视频) Ba-VideoPip(文档)文章来源地址https://www.toymoban.com/news/detail-417697.html

到了这里,关于uniapp 画中画悬浮窗(视频) Ba-VideoPip的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用uniapp实现全局悬浮按钮(可拖动)

    效果如下 实现方案 使用uniapp官方组件 movable-area和movable-view 代码解析 在components新建一个xxx.vue组件 重点在于movable-area与movable-view需要分别增加pointer-events: none和pointer-events: auto用于组件事件穿透与恢复组件事件(此处不加会导致引用该组件的父组件无法使用事件) 组件代码

    2024年02月11日
    浏览(48)
  • uniapp悬浮图标支持拖动支持微信小程序

    最近改了个UI,按钮放哪都不合适,看到别人都是用悬浮按钮,于是我自己也搞了一个,随心所欲存放位置,的确要比固定的好看的多,下面的是一个截图,代码放在下面自取 支持滑动、点击 完整代码片段:

    2024年02月11日
    浏览(46)
  • uniapp 悬浮窗-任意界面 Ba-FloatWinWeb

    简介(下载地址) Ba-FloatWinWeb 是一款支持自定义任意界面的悬浮窗插件。采用webview方式,同时支持本地、网络地址;自带几种界面,可直接使用。 支持显示、更新、隐藏 支持记录显示位置 支持拖动 支持监听点击事件 支持自动申请、判断悬浮窗权限 支持手动申请、判断悬

    2024年02月07日
    浏览(36)
  • uniapp 使用subNVue原生子窗体显示弹框或悬浮框

    在uniapp中,我们可以使用subNVue原生子窗体来解决web-view等原生页面中弹框无法显示的问题。 subNVue原生子窗体是uniapp提供的一种原生组件,可以在uniapp中嵌入原生页面,并且可以与uniapp页面进行通信。我们可以在原生页面中使用uniapp提供的API来与uniapp页面进行通信,从而实现

    2024年02月07日
    浏览(46)
  • Logseq001笔记类--视频悬浮插件--Helium

    这是我准备新开的学习记录系列之一 今天写一个插件的介绍吧——  Helium  —— 视频悬浮插件 youtube/b站/本地视频都可以导入 主要功能就是你在看视频时,要记一些学习笔记,随着不断往下写,视频会出现被挡住的情况。 这个时候Helium就能帮上大忙!首先点击右上角三个点

    2024年02月08日
    浏览(43)
  • uniapp 来电显示悬浮窗插件(支持锁屏来电) Ba-CallerID

    简介(下载地址) Ba-CallerID 是一款来电显示悬浮窗插件插件。 支持显示、隐藏 支持锁屏来电显示 支持自定义位置显示(上、中、下) 支持拖动(这版不支持,需要的话可以加) 支持申请、判断悬浮窗权限 截图展示 使用方法 在 script 中引入组件 在 script 中调用(示例参考

    2023年04月26日
    浏览(43)
  • RK3588 之视频和QT悬浮DRM显示

            在上一章中我们讲到,解码后的帧通过RGA进行混合后,我们需要送给DRM来进行显示,在这一章中,我们具体的讲怎么通过DRM显示视频帧,怎么通过DRM显示视频和QT,怎么通过DRM来做alpha ,colorkey 及图层序。具体的DRM的文档,我们可以参考RK提供的关于DRM的文档。我就不

    2024年02月09日
    浏览(118)
  • uniapp微信小程序全局所有页面放置一个跳转首页的可以拖动的悬浮按钮

    把上面的静态解构放到src/components/movable/movable.vuewe文件作为自定义组件 此处用的到时uniapp的movable-area组件和内嵌 movable-view 组件,其中movable-area表示可拖动的范围,movable-view用于指示可拖动的区域。 参照文档:movable-area | uni-app官网     movable-view | uni-app官网 想要实现每个页

    2024年02月03日
    浏览(46)
  • 【UniApp开发小程序】悬浮按钮+出售闲置商品+商品分类选择【后端基于若依管理系统开发】

    【悬浮按钮】 【闲置商品描述信息填写界面】 【商品分类选择界面】 【分类选择完成】 悬浮按钮漂浮于页面之上,等页面滑动时,悬浮按钮的位置相对于屏幕不会改变 【悬浮按钮组件】 【在其他界面中使用】 因为组件中使用了插槽,可以在该组件中插入其他组件 示例中

    2024年02月12日
    浏览(40)
  • Qt编写视频监控系统74-悬浮工具栏(半透明/上下左右位置/自定义按钮)

    在监控系统中一般在视频实时预览的时候,希望提供一个悬浮工具条,可以显示一些提示信息比如分辨率、码率、帧率,提供一堆快捷操作按钮,可以录像、抓拍、云台控制、关闭等操作,参考了国内很多监控厂商客户端软件,总结下来基本就是悬浮条可以半透明悬浮在通道

    2024年02月06日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包