| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | <template>	<view class="zaiui-video-h5-view-box">		<!--封面-->		<view class="video-cover-view" v-show="coverShow?true:false">			<view class="bg-img bg-mask flex align-center text-center video-cover" :style="[{backgroundImage:'url('+ isCover +')'}]">				<view class="text-white video-play-view">					<text class="cuIcon-playfill play"></text>				</view>			</view>			<!--点击事件,此view里不能放任何组件,只能放文字,否则会报错,原因未知。-->			<view class="video-click" @click="video_view.onClick" :data-index='isNum' :data-src='isSrc'></view>		</view>				<!--视频组件框-->		<view class="zaiui-video-h5-box" :id="['video_h5_' + isNum]"></view>	</view></template><script>	//在APP端创建H5的视频播放器组件,用此方案,可调整视频组件的层级问题。	//如需扩展其它类型的组件,可按照此方案,自行扩展。	export default {		name: 'video-render',		data() {			return {				coverShow: true,			}		},		props: {			isSrc: {				type: String,				default: ''			},			isNum: {				type: Number,				default: 1			},			isCover: {				type: String,				default: ''			}		},		methods: {			closeCoverClick() {				//关闭封面				this.coverShow = false;			}		}	}</script><script module="video_view" lang="renderjs">	export default {		methods: {			onClick(event,ownerInstance) {				let data = event.target.dataset;				// 调用 service 层的方法				ownerInstance.callMethod('closeCoverClick');				this.initVideo(data.src,data.index);			},			initVideo(isSrc,isNum) {				//更多video属性:https://www.w3school.com.cn/jsref/dom_obj_video.asp				let src = isSrc.replace(/\"/g, "");				const VIDEO = document.createElement("video");				VIDEO.setAttribute("width", "100%");				VIDEO.setAttribute("height", "200");				VIDEO.setAttribute("autoplay", "autoplay");	//自动播放				VIDEO.setAttribute("controls", "controls");	//控制条				VIDEO.setAttribute("src", src);				const view = document.getElementById("video_h5_" + isNum);				view.appendChild(VIDEO);			}		}	}</script><style lang="scss" scoped>	.zaiui-video-h5-view-box {		position: relative;		width: 100%;		.video-cover-view {			position: relative;			width: 100%;			height: 195px;			.video-cover {				height: 195px;				text-align: center;			}			.bg-mask {			    background-color: #ffffff;			}			.video-play-view {				width: 100%;				.play {					font-size: 63.63upx;				}			}			.video-click {			    position: absolute;			    left: 0;			    bottom: 0;			    top: 0;			    right: 0;				pointer-events: all;				z-index: 2;			}		}		.zaiui-video-h5-box {			position: relative;			width: 100%;			height: 100%;		}	}</style>
 |