2022-11-10 工作记录--HTML-video视频铺满播放

这篇具有很好参考价值的文章主要介绍了2022-11-10 工作记录--HTML-video视频铺满播放。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTML-video视频铺满播放

一、实现效果 ⭐️

1、未铺满播放 ❎

全屏播放视频的html代码,工作,html,音视频,javascript

2、铺满播放 ✅

全屏播放视频的html代码,工作,html,音视频,javascript

二、实现代码 ⭐️

react为例

1、未铺满播放 ❎

homePage.jsx

import React from 'react';

import './homePage.less';

class HomePage extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      showWidget: false, // 是否展示视频里的浏览器默认的控件
      isVideoPlay: false, // 是否播放视频
    }
  }

  // 播放视频
  playVideo = () => {
    this.setState({
      isVideoPlay: true,
      showWidget: true,
    });
    if (this.videoRef) {
      // 播放视频
      this.videoRef.play();
    }
  };

  render() {
    const { showWidget, isVideoPlay } = this.state;

    // 视频封面图(地址是我乱写的,根据自己需求来改)
    // eslint-disable-next-line
    const posterUrl = "https://yun.test.com.cn/poster.png";
    // 视频地址(地址是我乱写的,根据自己需求来改)
    // eslint-disable-next-line
    const videoUrl = "https://yun.test.com.cn/video.mp4";

    return (
      <div className="homePage">
        {/* 视频 */}
        <div className="videoItem">
          {/* video【注意:视频地址是通过接口获取时,一定不要忘记加 videoUrl &&。若忘记加了,视频就会加载不出来哦】*/}
          {
            videoUrl && (
              <video
                ref={el => (this.videoRef = el)}
                className="videoContent"
                // 浏览器默认的控件
                controls={showWidget}
                preload="auto"
                webkit-playsinline="true"
                playsInline={true}
              >
                {/* 视频地址 */}
                <source src={videoUrl} type="video/mp4" />
                您的浏览器不支持 video 标签。
              </video>
            )
          }
          {/* 视频未播放时的展示内容 */}
          {!isVideoPlay &&
            <>
              <img
                className="videoPoster"
                // 视频封面图
                src={posterUrl}
                onClick={this.playVideo}
              />
              <span className="tip">点击观看视频</span>
            </>
          }
        </div>
      </div >
    );
  }
}

export default HomePage;

homePage.less

.homePage {
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  background-color: #d8e9ef;
  padding-top: 549px;
  box-sizing: border-box;
  .videoItem {
    width: 696px;
    height: 370px;
    margin: auto;
    background-color: #fff;
    border-radius: 25px;
    position: relative;
    .videoContent,.videoPoster {
      width: 100%;
      height: 100%;
      border-radius: 25px;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
    }
    .tip{
      width: 200px;
      height: 60px;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
      background: rgba(0, 0, 0, 0.7);
      text-align: center;
      color: #ffffff;
      border-radius: 10px;
      line-height: 60px;
      /** 实现点击穿透 */
      pointer-events: none;
    }
  }
}
2、铺满播放 ✅

video加上样式:object-fit: cover;,实现iosandroid都兼容。

homePage.jsx

import React from 'react';

import './homePage.less';

class HomePage extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      showWidget: false, // 是否展示视频里的浏览器默认的控件
      isVideoPlay: false, // 是否播放视频
    }
  }

  // 播放视频
  playVideo = () => {
    this.setState({
      isVideoPlay: true,
      showWidget: true,
    });
    if (this.videoRef) {
      // 播放视频
      this.videoRef.play();
    }
  };

  render() {
    const { showWidget, isVideoPlay } = this.state;

    // 视频封面图(地址是我乱写的,根据自己需求来改)
    // eslint-disable-next-line
    const posterUrl = "https://yun.test.com.cn/poster.png";
    // 视频地址(地址是我乱写的,根据自己需求来改)
    // eslint-disable-next-line
    const videoUrl = "https://yun.test.com.cn/video.mp4";

    return (
      <div className="homePage">
        {/* 视频 */}
        <div className="videoItem">
          {/* video【注意:视频地址是通过接口获取时,一定不要忘记加 videoUrl &&。若忘记加了,视频就会加载不出来哦】*/}
          {
            videoUrl && (
              <video
                ref={el => (this.videoRef = el)}
                className="videoContent"
                // 浏览器默认的控件
                controls={showWidget}
                preload="auto"
                webkit-playsinline="true"
                playsInline={true}
                // 视频封面图
                poster={posterUrl}
                onClick={this.playVideo}
              >
                {/* 视频地址 */}
                <source src={videoUrl} type="video/mp4" />
                您的浏览器不支持 video 标签。
              </video>
            )
          }
          {/* 视频未播放时的展示内容 */}
          {!isVideoPlay && <span className="tip">点击观看视频</span>}
        </div>
      </div >
    );
  }
}

export default HomePage;

homePage.less

.homePage {
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  background-color: #d8e9ef;
  padding-top: 549px;
  box-sizing: border-box;
  .videoItem {
    width: 696px;
    height: 370px;
    margin: auto;
    background-color: #fff;
    border-radius: 25px;
    position: relative;
    .videoContent {
      width: 100%;
      height: 100%;
      border-radius: 25px;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
      /** 实现视频铺满 */
      object-fit: cover;
    }
    .tip{
      width: 200px;
      height: 60px;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
      background: rgba(0, 0, 0, 0.7);
      text-align: center;
      color: #ffffff;
      border-radius: 10px;
      line-height: 60px;
      /** 实现点击穿透 */
      pointer-events: none;
    }
  }
}

哒哒哒哒~ biu biu biu~

全屏播放视频的html代码,工作,html,音视频,javascript文章来源地址https://www.toymoban.com/news/detail-629831.html

到了这里,关于2022-11-10 工作记录--HTML-video视频铺满播放的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTML VIDEO视频标签高度自适

    视频是可以按比例缩放显示的,现在大部分视频的宽度与高度比例是16:9,我们可以通过CSS将视频按照这个比例进行缩放显示。 通过百分比设置宽度,根据宽高比16:9,计算出高度的百分比数值,设置内边距为高度的数值,最后用绝对定位把视频百分百填充到设置的区域里面

    2024年02月13日
    浏览(42)
  • html 中video实现切换视频自动播放

    vue2实现的网页中播放视频,主要代码如下: 现在遇到的问题的,视频切换后要手动点击才能播放,是否可以实现切换视频后会自动播放不用手动点击 增加 autoplay 属性就可以了。 要实现切换视频后自动播放,您需要在 video 元素上使用 autoplay 属性。该属性会告诉浏览器在视频

    2024年01月22日
    浏览(29)
  • html网站video标签blob视频如何下载

    在淘宝或tdtu知乎等有时想下载里面的视频资源,看了一下视频标签里的video不是MP4格式url,而是blob+url的方式。 是blob:https并不是一种协议,而是html5中blob对象在赋给video标签后生成的一串标记,blob对象对象包含的数据,浏览器内部会解析 关于Blob原理和方式 blob 其实是 h5 表征

    2024年02月21日
    浏览(39)
  • 【HTML】音视频标签(audio、video、embed)

    我们通常用audio标签来向页面中引入一个外部的音频文件。 音视频文件引入时,默认情况下不允许用户自己控制播放停止。 属性 controls controls指定是否允许用户控制播放。 这个属性不是通过值来判断的,而是通过有没有,有这个属性就是允许,没有就是不允许。 autoplay aut

    2023年04月13日
    浏览(33)
  • comfyUI + animateDiff video2video AI视频生成工作流介绍及实例

    原文:comfyUI + animateDiff video2video AI视频生成工作流介绍及实例 - 知乎 目录 收起 前言 准备工作环境 comfyUI相关及介绍 comfyUI安装 生成第一个视频 进一步生成更多视频 注意事项 保存为不同的格式 视频宽高设置 种子值设置 提示词与负向提示词 节点变换提示词 controlnet权重控制

    2024年02月03日
    浏览(29)
  • 零基础HTML入门教程(13)——插入视频video标签

    我们前几小结学习了,插入图片插入音频等,我们这一小结学习一下,插入视频标签video并熟练使用。 (1)直到现在,仍然不存在一项旨在网页上显示视频的标准。 今天,大多数视频是通过插件(比如 Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。 HTML5 规定了一

    2024年02月11日
    浏览(35)
  • 【NodeJS】html通过video和canvas同时播放视频

    在某些特殊情况下,会使用Canvas作为容器展示视频,但是不是简单的为了播放视频,而是使用Canvas传递鼠标、键盘事件,发生了一个事件,事件则是传递到NodeJS服务器上,而做出相应的回复。本文只是做了一个例子,通过Canvas播放视频。 1、html页面:index.html 2、javascript:scri

    2024年01月19日
    浏览(34)
  • Vue-Html5-Video组件视频缓存本地技术

    Vue.js本身并不提供将视频缓存到本地的功能,但是可以通过使用HTML5的video标签和浏览器提供的缓存机制来实现。 具体实现步骤如下: 1. 在Vue组件中使用video标签来加载视频,如下所示: ```html video ref=\\\"videoPlayer\\\" controls source :src=\\\"videoUrl\\\" type=\\\"video/mp4\\\" /video ``` 其中,videoUrl是视频

    2024年02月16日
    浏览(41)
  • 实现html页面插入视频的自动播放、视频播放结束后的事件触发(video标签)

    要实现自动播放需要同时使用autoplay和muted属性,简单示例代码如下: html代码: css代码: 要实现视频播放结束后的事件触发需要使用addEventListener(“ended”, function () {})进行事件监听,简单示例代码如下: html代码: css代码: js代码: (1)菜鸟网址:https://www.runoob.com/tags/t

    2024年02月05日
    浏览(40)
  • 【html】利用生成器函数和video元素,取出指定时间的视频画面

    有的时候想截取视频某一秒的视频画面。 手动截取操作麻烦,还得时刻关注视频播放时间。 于是,我搞出来了一个根据视频自动截取特定时间描述的页面。 获取视频对象 根据视频时长生成时间选择表单 根据表单选择的时间和视频地址,利用canvas和vido元素生成某一帧的视频

    2024年02月07日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包