uniapp 视频播放(点播、直播、悬浮窗、重力感应、滑动调节)组件 Ba-Video

视频播放(点播、直播、悬浮窗、重力感应、滑动调节)组件 Ba-Video

简介(下载地址

Ba-Video 是原生视频播放组件。支持点播、直播;支持悬浮窗、全屏、小屏;支持封面、显示比例;支持滑动调节播放进度、声音、亮度(全屏);支持快进、回退、倍速播放;支持重力感应、视频截图;支持无缝衔接播放等。

  • 支持点播、直播
  • 支持设置封面
  • 支持悬浮窗(全局应用之上)
  • 支持全屏
  • 支持快进、回退
  • 支持调整显示比例
  • 支持滑动调节播放进度、声音、亮度(全屏)
  • 支持双击播放、暂停
  • 支持重力感应自动进入/退出全屏以及手动进入/退出全屏
  • 支持倍速播放
  • 支持视频截图(使用SurfaceView时都不支持,默认用的是TextureView)
  • 支持无缝衔接播放

注意 :原生组件,请使用nvue


可关注博客,实时更新最新插件

uniapp 常用原生插件大全


截图展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用方法(示例)

template 中直接引用

		<Ba-Video ref="video" style="height: 200;width: 100%;" @onBack="onVideoBack" :data="videoData">
		</Ba-Video>

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

<script>
	const websocket = uni.requireNativePlugin('Ba-Websocket')
	export default {
		data() {
			return {
				videoData: {
					title: "",//标题
					url: "",//视频地址
					thumbUrl: ""//视频封面图片地址
				},
				reversal: false,
				looping: false,
				mute: false,
				screenShot: '',
				videoInfo: '',
			}
		},
		onShow() {
			this.$refs.video.onPageShow();
		},
		onHide() {
			this.$refs.video.onPageHide();
		},
		onUnload() {
			this.$refs.video.onPageUnload();
		},
		onBackPress() {
			this.$refs.video.onPageBack();
		},
		methods: {
			onStartFloat(e) { //悬浮窗
				this.$refs.video.startFloat();
			},
			startFullScreen() { //全屏
				this.$refs.video.startFullScreen();
			},
			setLooping() { //循环播放
				this.looping = !this.looping;
				this.$refs.video.setLooping(this.looping);
			},
			onVideoBack() { //返回
				uni.navigateBack()
			},
			setVideoUrl(url) { //重新设置 url
				this.$refs.video.setUrl(url);
			},
			replay(url) { //重播
				this.$refs.video.replay(url);
			},
			setScaleType(type) { //设置视频比例
				this.$refs.video.setScaleType(type);
			},
			setSpeed(speed) { //设置播放速度
				this.$refs.video.setSpeed(speed);
			},
			setVolume(v1, v2) { //设置音量 0.0f-1.0f 之间
				//v1 – 左声道音量
				//v2 – 右声道音量
				this.$refs.video.setVolume(v1, v2);
			},
			setReversal() { //镜像旋转
				this.reversal = !this.reversal;
				this.$refs.video.setReversal(this.reversal);
			},
			setScreenShot() { //截屏
				let that = this;
				this.$refs.video.setScreenShot(
					(res) => {
						console.log(res)
						that.screenShot = res.data.base64;
						uni.showToast({
							title: res.msg,
							icon: "none",
							duration: 3000
						})
					});
			},
			setMute() { //静音
				this.mute = !this.mute;
				this.$refs.video.setMute(this.mute);
			},
			getVideoInfo() { //获取视频信息
				this.$refs.video.getVideoInfo(
					(res) => {
						console.log(res)
						this.videoInfo = JSON.stringify(res.data);
						uni.showToast({
							title: res.msg,
							icon: "none",
							duration: 3000
						})
					});
			}
		}
	}
</script>

方法清单

名称说明
startFloat开启悬浮窗
startFullScreen进入全屏
stopFullScreen退出全屏
isFullScreen判断是否处于全屏状态
setLooping设置循环播放,参数true或者false,如:this.$refs.video.setLooping(true)
setUrl重新设置 url,切换播放,参数为url,如:this.$refs.video.setUrl(“https://video.mp4”);
replay重播
setScaleType设置视频比例,参数:1(默认)、2(16:9)、3(4:3)、4(原始大小)、5(填充)、6(居中裁剪)
setSpeed设置播放速度,参数:float类型数字
setVolume设置音量 0.0f-1.0f 之间,参数两个:v1 – 左声道音量,v2 – 右声道音量
setReversal镜像旋转,参数:true或者false
setScreenShot截屏,返回参数:res.data.base64
setMute静音,参数:true或者false
getVideoInfo获取视频信息
setPosition设置播放位置,参数:毫秒
onPageShow生命周期,对应onShow()
onPageHide生命周期,对应onHide()
onPageUnload生命周期,对应onUnload()
onPageBack生命周期,对应onBackPress()
  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值