uniapp swiper轮播展示视频+图片

uniapp在app中在展示video时,会有样式不兼容问题,video层级很高,直接脱离了就很烦!!!!!!!!!!!!!!!!!!小程序正常展示。所以这个需求弄了很久!!!!!!!!!真烦!!!!!但好在弄出来了,但uniapp真的很鸡肋!!!!

方法如下:

1、先放一下源码组件:

<template>
	<view class="screen-swiper-box">
		<swiper @change='swiperChange' v-show='autoplay' class="screen-swiper" indicator-dots="true" circular="true"
			:autoplay="autoplayVideo" indicator-active-color="#71C1F6" indicator-color="#ffffff" interval="3000"
			duration="500">
			<swiper-item v-for="(item,index) in list" :key="index">
				<image class="swiperImage" @click="previewImage(item)" :src="item.type=='video'?item.poster:item.src"
					mode="scaleToFill"></image>
				<image v-if="item.type == 'video'" class='coverImage' @click="showVideo(item)"
					src='https:/*****-cn-***s.com/gjhz/20230601/94283177972b4a9f9d045c84367892d7.png'>
				</image>
			</swiper-item>
		</swiper>
		<u-popup v-model="showVideoBool" :uploadVideoBtn='true' negative-top="1px" @uploadVdata='uploadVdata'
			@close='close' border-radius="10" mode="center" :mask-custom-style="{background:'#000'}">
			<view v-if="showVideoBool" style='width:750rpx;height:700rpx;margin:0 auto'>
				<video :controls='true' style='width:100%;height:100%;' enable-progress-gesture='false' direction='0'
					page-gesture="true" id="myVideo" autoplay='true' @pause="ZanTing" @play="BoFang" class='isVideeo'
					objectFit="cover" :src="videoUrl">
				</video>
			</view>
		</u-popup>
	</view>
</template>


<script>
	import {
		uploadVideoData
	} from '@/utils/date.js'
	export default {
		props: {
			list: {
				type: Array,
				default: () => {
					return [] //[{type:'video',src:''},{type:'image',src:''}]
				},
				required: true
			}
		},
		data() {
			return {
				autoplay: true,
				showVideoBool: false,
				videoContext: null,
				autoplayVideo: true,
				changeIndex: '',
				poster: 'https://gongjihuizu.oss-cn-beijing.aliyuncs.com/gjhz/20230601/834fef3de4fd46af8582ca77d7000a9d.jpg', //视频网络封面图
				videoPicture: 'https://desk-fd.zol-img.com.cn/t_s720x360c5/g6/M00/0B/06/ChMkKmFBixKIYQSCAAJVqqciWmYAATuTwFJgJkAAlXC803.jpg',
				pictureUrl: 'https://gongjihuizu.oss-cn-beijing.aliyuncs.com/gjhz/20230601/4e0762932cd74b59bf28433f4f17e9df.jpg',
				// videoUrl: 'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218114723HDu3hhxqIT.mp4',
				videoUrl: '',
			}
		},
		onReady: function(res) {
			// this.videoContext = uni.createVideoContext('myVideo', this)

		},
		onShow() {
			// this.autoplay = false;
		},
		methods: {
			close() {
				console.log('关闭弹窗')
				this.autoplay = true;
			},
			//下载
			uploadVdata() {
				return uploadVideoData(this.videoUrl)
			},
			start() {
				console.log('start 开始滑动')
			},
			move() {
				console.log('move 正在滑动')
			},
			end() {
				console.log('end 滑动结束')

			},
			previewImage(item) {
				console.log('查看图片', item)
				if (item.type == 'image') {
					console.log('查看图片')
					uni.previewImage({
						urls: [item.src +
							'?x-oss-process=image/watermark,image_c3kucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA=,t_90,g_se,x_1,y_1'
						],
						current: 0,
						longPressActions: {
							itemList: ['保存图片'],
						},
						complete: (e) => {
							console.log(e, 'eeeeeeeeeeeeee')
						}
					});
				}

			},
			// 轮播图事件
			showVideo(item) {
				this.autoplay = false;
				this.showVideoBool = true
				this.videoUrl = item.src
				uni.createVideoContext('myVideo', this).play()
				// this.videoContext.play();

			},
			swiperChange(e) {
				// console.log('swiper切换', e.detail)

				this.changeIndex = e.detail.current
			},
			colseVideo() {

				// this.videoContext.pause();

				this.autoplay = false;
			},

			//视频开始播放
			BoFang() {
				console.log('2222222', '视频开始播放')
				this.autoplay = false;
				// this.videoContext.play();

			},

			// 视频暂停播放
			ZanTing(e) {
				console.log(e, '视频暂停播放')
				// this.autoplay = true;

				// this.videoContext.pause();

			}
		}
	}
</script>


<style lang="scss" scoped>
	.screen-swiper-box {
		position: absolute;
		width: 100%;
		height: 430rpx;
		top: 0;

		.video {
			height: 100%;
			width: 100%;
			position: absolute;

			.MyVideo {
				width: 100%;
				position: absolute;
				height: 100%;

				.videoClose {
					height: 100rpx;
					width: 100rpx;
					position: absolute;
					right: -1rpx;
					z-index: 99999;
					background-repeat: no-repeat;
					background-size: 100% 100%;
				}
			}


		}

		.screen-swiper {

			width: 100%;
			position: absolute;
			height: 100%;

			.swiperImage {
				width: 100%;
				position: absolute;
				height: 100%;
				z-index: 1;
			}


		}
	}

	.coverImage {
		width: 100rpx;
		height: 100rpx;
		margin: 0 auto;
		position: absolute;
		z-index: 5;
		left: 45%;
		top: 38%;
	}
</style>

2、组件逻辑解释:

  1. 先处理一下数据,给数据数组加个type,判断一下是视频和图片。我这里的type名是video、image
  2. 如果是video就展示视频的封面图,封面图的制作方式后面会说,最好在封面图加一个倒三角,这样更美观好看一些,也能一眼就看出来是个视频。
  3. 当点击视频的时候,展示弹窗展示视频,video在u-popu里面是正常展示,这个视频暂停swiper的自动播放,如果没有设置自动播放,请忽略。

 效果如图

关于视频封面图制作:是后台处理的后台给了我一串字符串,我拼接在了视频链接的后面?x-oss-process=image/watermark,image_c3kucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA=,t_90,g_se,x_1,y_1',上面的代码里面有,这样就生成了一张图片,但是这个图片就是一张静态图,所以为了效果更好,我在这张封面图上加了一个倒三角,就有模有样了。

有任何问题,请留言

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 泛微e9是一种流行的企业管理系统,可以帮助企业提高工作效率和管理效果。在e9系统中,用户可以上传各种类型的附件,包括文档、图片、音频和视频等。 e9系统中的视频附件可以通过在线播放进行观看。用户只需在e9系统中打开相应的页面或模块,找到视频附件,并点击播放按钮即可开始观看视频。e9系统支持多种常见的视频格式,如MP4、AVI和MKV等,用户可以根据自己的需求选择适合的视频格式上传到系统中。 在视频播放界面中,用户可以像在其他视频播放器中一样进行基本的操作,如播放、暂停、快进、倒带等。此外,用户还可以调整视频画面的大小、音量和分辨率等参数,以获得更好的观看体验。 通过e9系统中的附件视频在线播放功能,企业可以更方便地分享和传达信息。无论是学习培训视频、产品演示视频还是会议录像等,都可以通过e9系统进行在线观看,方便员工随时随地获取所需的信息。同时,e9系统还可以提供权限管理功能,只有特定的用户才能访问或播放某些视频附件,确保信息的安全性。 总之,泛微e9系统提供了方便快捷的在线视频播放功能,帮助企业实现信息共享和传达的效果。无论是内部培训还是外部宣传,e9系统都能满足企业多样化的需求。 ### 回答2: 泛微e9是一款企业级办公自动化软件,它提供了丰富的功能,包括邮件、文档管理、流程审批等。在这些功能中,附件视频在线播放是其中的一个重要功能。 泛微e9可以支持各种不同格式的附件视频在线播放。当用户上传一个包含视频的附件时,系统会自动对其进行检测和解析。一旦视频被解析成功,用户就可以通过系统内置的播放器直接在系统中播放视频,无需下载或者安装额外的播放器。 通过泛微e9的附件视频在线播放功能,用户可以实现以下几个方面的便利: 1. 提高用户体验:附件视频在线播放功能可以大大提高用户的体验。无需下载或安装额外的播放器或软件,用户可以直接在系统中观看视频,省去了许多麻烦。 2. 提高工作效率:通过附件视频在线播放功能,用户可以更快速地查看视频内容。无需离开系统,用户可以直接在工作台上就能观看视频,节省了切换窗口或应用程序的时间和精力。 3. 提供更好的协作环境:泛微e9的附件视频在线播放功能可以为多人协作提供更好的环境。用户可以在系统内同时观看视频,便于多人共同理解和讨论视频内容,提高工作效率和沟通效果。 总之,泛微e9的附件视频在线播放功能为企业办公自动化提供了更全面和便捷的解决方案,帮助用户提高工作效率,提升用户体验,提供更好的协作环境。 ### 回答3: 泛微 E9 是一款企业协同办公平台,其附件视频可以在线播放。使用泛微 E9 平台,在上传视频文件时,系统会自动将视频转换为可在线播放的格式。该功能使得用户无需下载视频文件,即可直接在浏览器中观看视频内容。 泛微 E9 提供了一系列的视频播放功能,用户可以自由地播放、暂停、拖动进度条、调整音量等操作。此外,还提供了全屏播放模式、播放速度调节、切换分辨率等扩展功能,以满足不同用户在视频播放过程中的需求。 通过泛微 E9 的附件视频在线播放功能,企业可以方便地分享内部会议录像、培训视频、产品演示录像等信息,提高信息传达的效率。此外,用户还可以在浏览器中即时评论、点赞、分享视频,与其他用户进行交流和互动。 总结来说,泛微 E9 附件视频在线播放功能为用户提供了方便、高效的视频观看体验,使得企业能更好地利用和传播视频资源,并与其他用户分享和交流。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值