当前位置: 首页 > news >正文

如何建设一个学校团委网站/百度上怎么发布信息啊

如何建设一个学校团委网站,百度上怎么发布信息啊,请别人做网站,专做h5的公司网站Vue2视频播放组件 可自定义设置以下属性: 视频文件url(videoUrl),必传,支持网络地址https和相对地址 视频封面url(videoCover),默认为null,支持网络地址https和相对地…

Vue2视频播放组件

可自定义设置以下属性:  

  • 视频文件url(videoUrl),必传,支持网络地址https和相对地址

  • 视频封面url(videoCover),默认为null,支持网络地址https和相对地址

  • 视频播放器宽度(width),默认为800px

  • 视频播放器高度(height),默认为450px

  • 视频就绪后是否马上播放(autoplay),默认为false

  • 是否向用户显示控件,比如是否向用户显示控件,比如进度条,全屏等(controls),默认为true

  • 视频播放完成后,是否循环播放(loop),默认为false

  • 是否静音(muted),默认为false

  • 是否在页面加载后载入视频(preload)如果设置了autoplay属性,则preload将被忽略,默认为auto // auto:一旦页面加载,则开始加载视频; metadata:当页面加载后仅加载视频的元数据 none:页面加载后不应加载视频

  • 播放暂停时是否显示播放器中间的暂停图标(showPlay),默认为false

  • 中间播放暂停按钮的边长(playWidth),默认为96px

  • video的poster默认图片和视频内容的缩放规则(zoom),默认为'none' // none:(默认)保存原有内容,不进行缩放; fill:不保持原有比例,内容拉伸填充整个内容容器; contain:保存原有比例,内容以包含方式缩放; cover:保存原有比例,内容以覆盖方式缩放

效果如下图:

①创建视频播放组件Video.vue: 

<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue'
interface Props {videoUrl: string, // 视频文件url,必传,支持网络地址 https 和相对地址 require('@/assets/files/Bao.mp4')videoCover?: string // 视频封面url,支持网络地址 https 和相对地址 require('@/assets/images/Bao.jpg')width?: number // 视频播放器宽度height?: number // 视频播放器高度autoplay?: boolean, // 视频就绪后是否马上播放controls?: boolean, // 是否向用户显示控件,比如进度条,全屏loop?: boolean // 视频播放完成后,是否循环播放muted?: boolean // 是否静音preload?: string // 是否在页面加载后载入视频,如果设置了autoplay属性,则preload将被忽略;showPlay?: boolean, // 播放暂停时是否显示播放器中间的暂停图标playWidth?: number, // 中间播放暂停按钮的边长zoom?: string // video的poster默认图片和视频内容缩放规则
}
const props = withDefaults(defineProps<Props>(), {videoUrl: '',videoCover: '',width: 800,height: 450,/*autoplay:由于目前在最新版的Chrome浏览器(以及所有以Chromium为内核的浏览器)中,已不再允许自动播放音频和视频。就算你为video或audio标签设置了autoplay属性也一样不能自动播放!本组件解决方法:设置视频 autoplay 时,自动将视频设置为静音 muted: true 即可实现自动播放,然后用户可以使用控制栏开启声音,类似某宝商品自动播放的宣传视频逻辑*/autoplay: false,controls: true,loop: false,muted: false,/*preload可选属性:auto:一旦页面加载,则开始加载视频;metadata:当页面加载后仅加载视频的元数据none:页面加载后不应加载视频*/preload: 'auto',showPlay: false,playWidth: 96,/*zoom可选属性:none:(默认)保存原有内容,不进行缩放;fill:不保持原有比例,内容拉伸填充整个内容容器;contain:保存原有比例,内容以包含方式缩放;cover:保存原有比例,内容以覆盖方式缩放*/zoom: 'none'
})
const originPlay = ref(true)
const vplay = ref(false)
// 为模板引用标注类型
// 或 const veo = ref()
const veo = ref<HTMLVideoElement | null>(null) // 声明一个同名的模板引用function onPlay () {console.log('click')if (props.autoplay) {veo.value?.pause()} else {vplay.value = trueoriginPlay.value = falseveo.value?.play()}
}
function onPause () {vplay.value = falseconsole.log('pause')
}
function onPlaying () {vplay.value = trueconsole.log('playing')
}
onMounted(() => {if (props.showPlay) {veo.value?.addEventListener('pause', onPause)veo.value?.addEventListener('playing', onPlaying)}if (props.autoplay) {vplay.value = trueoriginPlay.value = false}// 自定义设置播放速度// this.$refs.veo.playbackRate = 2
})
onUnmounted(() => {veo.value?.removeEventListener('pause', onPause)veo.value?.removeEventListener('playing', onPlaying)
})
</script>
<template><div class="m-video" :style="`width: ${width}px; height: ${height}px;`"><videoref="veo":style="`object-fit: ${zoom};`":src="videoUrl":poster="videoCover":width="width":height="height":autoplay="autoplay":controls="!originPlay&&controls":loop="loop":muted="autoplay || muted":preload="preload"@click.prevent.once="onPlay">您的浏览器不支持video标签。</video><svg v-show="originPlay || showPlay" :class="[vplay ? 'hidden' : 'u-play']" :style="`width: ${playWidth}px; height: ${playWidth}px;`" viewBox="0 0 24 24"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4.75 6.75C4.75 5.64543 5.64543 4.75 6.75 4.75H17.25C18.3546 4.75 19.25 5.64543 19.25 6.75V17.25C19.25 18.3546 18.3546 19.25 17.25 19.25H6.75C5.64543 19.25 4.75 18.3546 4.75 17.25V6.75Z"></path><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.25 12L9.75 8.75V15.25L15.25 12Z"></path></svg></div>
</template>
<style lang="less" scoped>
.m-video {display: inline-block;position: relative;background: #000;cursor: pointer;&:hover {.u-play {opacity: 0.9;}}.u-play {position: absolute;top: 0;right: 0;bottom: 0;left: 0;margin: auto;fill: none;color: #FFF;pointer-events: none;opacity: 0.7;transition: opacity .3s;}.hidden {display: none;}
}
</style>

②在要使用的页面引入:

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import Video from './Video.vue'
// import videoUrl from '@/assets/files/Bao.mp4'
// import videoCover from '@/assets/images/Bao.jpg'// 可以本地静态资源路径
const videoUrl = ref(new URL('@/assets/files/Bao.mp4', import.meta.url).href)
const videoCover = ref(new URL('@/assets/images/Bao.jpg', import.meta.url).href)// 也可以https网络地址
// const videoUrl = ref()
// const videoCover = ref()onMounted(() => {// setTimeout(() => { // 模拟接口调用//     videoUrl.value = 'https网络地址'//     videoCover.value = 'https:网络地址//   }, 1000)
})
</script>
<template><Videov-show="true":videoUrl="videoUrl":videoCover="videoCover":width="800":height="450":autoplay="true":controls="true":loop="false":muted="false"preload="auto":showPlay="true":playWidth="96"zoom="cotain"/>
</template>
http://www.jmfq.cn/news/5132089.html

相关文章:

  • 上海网站建设网站开发/公司运营策划方案
  • 文登区城乡建设局网站/哈尔滨新闻头条今日新闻
  • 石排网站设计/网络广告图片
  • 比较好的做外贸网站/六年级下册数学优化设计答案
  • 英文网站怎么做/百度快照
  • 政府网站集群建设汇报/百度扫一扫网页版
  • 外贸专业网站/免费发外链平台
  • wordpress+不能发邮件/seo网站排名助手
  • 设计素材网站外网/深圳百度推广客服
  • 网站开发 票种/百度学术官网登录入口
  • 长沙网页设计公司哪家好/win7系统优化大师
  • 网站栏目页关键词如何做/网站策划是做什么的
  • 直销网站有没有适合在家做的手工活/在线企业管理培训课程
  • 怎么可以黑网站域名/推广平台软件有哪些
  • 制作网站作品/网站设计的流程
  • 网站建设与网页设计案例教程/自媒体推广渠道
  • 无锡高端网站建设公司/企业网站营销优缺点
  • 数字政府与网站内容建设/苏州关键词优化软件
  • 邯郸网站优化建设/各大网站域名大全
  • 商城网站功能介绍/福建搜索引擎优化
  • 制作网架厂家/网站seo资讯
  • 做跨境电商的步骤/广州网络seo公司
  • 广州工商注册官网/seo策略主要包括
  • 网站优化排名多少钱/网络营销推广策略
  • 凡科网客服电话是多少/宁波企业seo外包
  • 深圳网站建设信科公司便宜/哪个app可以找培训班
  • 做网站开店/淘宝关键词优化工具
  • 网站 廉政建设 板块/中国十大搜索引擎网站
  • dreamweaver设计网页步骤/seo的概念
  • 品牌的手机网站制作/电脑培训学校在哪里