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

安徽省建设厅网站域名权威发布是鼠头

安徽省建设厅网站域名,权威发布是鼠头,高端品牌网站建设专人一对一服务,为wordpress创建一个ftp目录 参考网址 效果图#xff0c;暂停时显示暂停图标#xff0c;播放时隐藏暂停图标 代码说明#xff0c;代码传入url后#xff0c;可直接复制使用 VideoPausedIcon.ts 组件 VideoCom.tsx Video.module.less 参考网址 在Video.js播放器中定制自己的组件 - acgtofe 效…目录 参考网址 效果图暂停时显示暂停图标播放时隐藏暂停图标 代码说明代码传入url后可直接复制使用 VideoPausedIcon.ts 组件 VideoCom.tsx Video.module.less 参考网址 在Video.js播放器中定制自己的组件 - acgtofe 效果图暂停时显示暂停图标播放时隐藏暂停图标 代码说明代码传入url后可直接复制使用 注意videojs升级后不能用extend创建组件需要按下方代码建一个组件 VideoPausedIcon.ts 组件 import videojs from video.js;const Component: any videojs.getComponent(Component);export class VideoPausedIcon extends Component {constructor(player: any, options: any) {super(player, options);// 监听暂停播放显示播放按钮player.on(pause, () {this.visible true;const el this.el();el.className vjs-define-paused;});// 监听开始播放隐藏播放按钮通过videojs自带的 vjs-hidden 类player.on(play, () {this.visible false;const el this.el();el.className vjs-define-paused vjs-hidden;});this.on(touchstart, this.handleTouchStart);this.on(touchend, this.handleTouchEnd);// 如果需要在web端使用必须不兼容的话web端点击按钮就不会暂停/播放this.on(click, (e: any) this.handleClick(e, player));}createEl() {let pauseIcon videojs.dom.createEl(div, {className: vjs-define-paused,tabIndex: -1,});!this.visible videojs.dom.appendContent(pauseIcon, );return pauseIcon;}handleTouchStart(e: any) {// 此处必须不然点击按钮不能播放/暂停e.stopPropagation();}handleTouchEnd(e: any) {// 此处必须不然点击按钮不能播放/暂停e.stopPropagation();}handleClick(e: any, player: any) {e.stopPropagation();if (!player) {return;}const paused player.paused();if (paused) {player.play();} else {player.pause();}} }VideoCom.tsx import React, { useEffect } from react; import videojs from video.js; import video.js/dist/video-js.css; import styles from ./Video.module.less; import { VideoPausedIcon } from ./VideoPausedIcon;interface IProps {url: string; }const VideoCom: React.FCIProps (props: any) {const videoRef React.useRefany(null);const playerRef React.useRefany(null);useEffect(() {const player: any playerRef playerRef.current;return () {if (player !player.isDisposed()) {player.dispose();playerRef.current null;}};}, [playerRef]);useEffect(() {if (!props.url) {return;}let options: any {controlBar: {fullscreenToggle: true,pictureInPictureToggle: false,volumePanel: false,playToggle: false,},muted: false,controls: true, //进度条autoplay: false, //自动播放loop: false, //是否循环languages: {zh-CN: new URL(video.js/dist/lang/zh-CN.json, import.meta.url).href,},language: zh-CN,preload: auto,nodownload: true,sources: [{ src: props.url, type: video/mp4 }],};// Make sure Video.js player is only initialized onceif (!playerRef || !playerRef.current) {// The Video.js player needs to be _inside_ the component el for React 18 Strict Mode.const videoElement document.createElement(video-js);videoRef videoRef.current videoRef.current.appendChild(videoElement);playerRef.current videojs(videoElement, options, () {console.log(player is ready);const player: any playerRef.current;player.on(error, (err: any) {console.log(source load fail);// message.error(视频源请求出错);});let touchStartTime 0;let touchEndTime 0;player.on(touchstart, (e: any) {touchStartTime new Date().getTime();});player.on(touchend, (e: any) {touchEndTime new Date().getTime();if (touchEndTime - touchStartTime 300) {const paused player.paused();if (paused) {player.play();} else {player.pause();}}});});createPausedIcon();} else {const player: any playerRef.current;player.src(options.sources);}}, [props.url,playerRef,videoRef]);const createPausedIcon () {const player playerRef playerRef.current;if (!player) {return;}const Component: any videojs.getComponent(Component);Component.registerComponent(VideoPausedIcon, VideoPausedIcon);const options {};const properIndex player.children().indexOf(player.getChild(BigPlayButton));player.addChild(VideoPausedIcon, options, properIndex);};return (div className{styles.container}div className{styles.videoBox} ref{videoRef}/div/div); };export default VideoCom;Video.module.less .container {width: 100%;height: 100%;.videoBox {width: 100%;height: 100%;:global {.video-js {width: 100%;height: 100%;.vjs-big-play-button {display: none;}.vjs-define-paused {width: 30px;height: 28px;background: rgba(43, 63, 46, 0.7);border: 1px solid rgb(0, 255, 140);border-radius: 10px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);transition: all .4s;::after {display: block;content: ;position: absolute;top: 50%;left: calc(50% 5px);transform: translate(-50%, -50%);border-top: 5px solid;border-bottom: 5px solid;border-left: 8px solid;border-right: 8px solid;border-color: transparent;border-left-color: rgb(0, 255, 140);}}}}}}
http://www.hkea.cn/news/14338084/

相关文章:

  • 网站中的幻灯片ie6显示 ie7如何兼容深圳手机网站设计公司
  • 建设微信商城网站wordpress调用产品图片
  • 自主建设公司网站wordpress id连续插件
  • 视频网站做板块栏目重庆网上房地产查询备案价
  • c 网站开发简单实例教程手机网站二级导航菜单
  • 润滑油东莞网站建设哈尔滨建设发展集团有限责任公司
  • 重庆电商网站建设费用成都服务器租赁
  • 单位网站建设自查报告范文关于网站建设的电话销售话术
  • 做企业网站怎么备案flash网站引导页面制作
  • 用DW做的网站生成链接洒长春菩网站建设
  • 成品网站源码68w68游戏wordpress知名博客主体
  • 从化网站建设在网站后台管理系统里产品说明怎么添加图片
  • 深圳建设网站top028哪些网站做的不好
  • 怎么做公司宣传网站wordpress零基础
  • 端口扫描站长工具本土建站工作室
  • 个人网站制作源代码下载传奇手游官方网站
  • 三室一厅二卫装修效果图seo行业岗位有哪些
  • 广西建设厅考试网站如何申请注册企业邮箱
  • 四合一网站建设源码河北网站优化建设
  • 用python做网站的多吗网站如何做流媒体
  • 建筑企业登录哪个网站站长统计app软件大全
  • 网站建设 泰安网站图片快速加载
  • 宁波模板建站定制wordpress hacker主题
  • 网站建设费做什么会计科目wordpress注册没有密码
  • 网站建设电脑维修数据恢复个人怎么申请微信小程序
  • 广东专业网站建设报价黄冈做网站的公司哪家好
  • 做网站收款支付宝接口宽带收费价格
  • 华为云建设网站江门网站建设junke100
  • 龙岗区住房建设局网站h5 网站开发流程图
  • 成都保障房中心官方网站建网站后如何维护