HTML5实现音频和视频嵌入

2023-10-31

简介

HTML5未出来之前,在线的音频和视频都是借助Flash或者第三方工具实现的,现在HTML5也支持了这方面的功能。在一个支持HTML5的浏览器中,不需要安装任何插件就能播放音频和视频。原生的支持音频和视频,为HTML5注入了巨大的发展潜力。

html实现音频嵌入(传统方式):这种方式虽然可以实现,但是要浏览器支持Flash而且并不能实现控制,所以要实现起来很麻烦。

<object height="200" width="200" data="2_1.swf" ></object>
	<embed src="2_1.mp4" type="">

那么也就是说HTML5存在一个很大的问题就是兼容性。

音频

HTML5支持的音频格式:

视频

视频格式:

由上可知,HTML5貌似支持的格式有点少哈,所以当你发现用HTML5放置音频和视频不显示时,应该就是格式不支持的问题。注: MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264), 只有h264才是公认的MP4标准编码(在这也是被坑了,其他格式的只有声音没有图像。)遇到这种问题,就用视频格式转换器,转换一下格式就OK啦。


音频实现起来很简单:这里工具条使用了浏览器默认的工具条。

<audio src="htmls/1.mp3"  controls="controls" loop="loop" preload="auto" >
			你的浏览器不支持video元素
		</audio>


视频虽然也可以使用浏览器默认的,但无法实现私人订制,所以从学技术的角度讲,还是要学习一下自己做工具实现功能(audio也可参照此方法)。

audioVideo.html

<!DOCTYPE html>
	<html>
	<head>
		<meta charset="UTF-8">
		<title>网页放置视频</title>
		<style type="text/css">
		</style>
		<script type="text/javascript" src="js/ControlBar.js"></script>
	</head>
	<body>
		<audio src="htmls/1.mp3"  controls="controls" loop="loop" preload="auto" >
			你的浏览器不支持video元素
		</audio>
		<video id="myPlayer" width="600" height="400" src="htmls/2_1.mp4" controls="controls" loop="loop" poster="3.jpg">
			你的浏览器不支持audio元素
			<!-- MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264),
                  只有h264才是公认的MP4标准编码 -->
		</video>
		<div id="progress"></div>
		<!-- 音量控制 -->
		<input id="volume" type="range" min="0" max="1" step="0.1" οnchange="Volume(this)">
		<!-- 速率和时间进度的信息 -->
		<span id="rate">1</span>fps <span id="info"></span>
		<button οnclick="Play(this)" id="btn1">播放</button>
		<button οnclick="Fast()">快进</button>
		<button οnclick="Slow()">慢进</button>
		<button οnclick="Prev()">后退</button>
		<button οnclick="Next()">前进</button>
		<button οnclick="Muted(this)">静音</button>
	</body>
</html>

显示(html)与功能实现(js)分离,由外部导入

ControlBar.js

//使用脚本检测浏览器的标签支持情况
var support = !!document.createElement("audio").canPlayType;
if (!support) {
	alert("你的浏览器不支持本视频播放");
}
// 定义全局的视频对象
var e1 = null;
window.addEventListener("load", function() {
	e1 = document.getElementById("myPlayer");
});
/*前进:一分钟 */
function Next() {
	e1.currentTime+=10; //设置属性currentTime,快进10s
}
/*后退:一分钟 */
function Prev() {
	e1.currentTime-=10; //设置属性currentTime,后退10s
}
/*播放/暂停*/
function Play(e) {
	if(e1.paused){
		e1.play();
		document.getElementById("btn1").innerHTML="暂停"
	}else{
		e1.pause();
		document.getElementById("btn1").innerHTML="播放"
	}
}
/*慢进:小于等于1时,每次都只减慢0.2的速率;大于1时,每次减1 */
function Slow(){
	if(e1.playbackRate<=1){
		e1.playbackRate-=0.2;
	}else{
		e1.playbackRate-=1;
	}
	document.getElementById("rate").innerHTML=fps2fps(e1.playbackRate);
}
/*慢进:小于等于1时,每次都只减慢0.2的速率;大于1时,每次减1 */
function Fast(){
	if(e1.playbackRate<1){
		e1.playbackRate+=0.2;
	}else{
		e1.playbackRate+=1;
	}
	document.getElementById("rate").innerHTML=fps2fps(e1.playbackRate);
}
function fps2fps(fps){
	if(fps<1){
		return fps.toFixed(1);
	}else{
		return fps;
	}
}
/*静音*/
function Muted(e){
	if(e1.muted){
		e1.muted=false;
		e.innerHRML="X";
		document.getElementById("volume").value=e1.volume;
	}else{
		e1.muted=true;
		e.innerHRML="x";
		document.getElementById("volume").value=0;
	}
}
/*调整音量*/
function Volume(e){
	if(e1.muted==true){
		e1.muted=false;
	}
	e1.volume=e.value;
}
/* 进度信息:控制进度条,并显示进度时间*/
function Progress(){
	var p1=document.getElementById("progress");
	p1.style.width=(e1.currentTime/e1.duration)*720+"px";
	document.getElementById("info").innerHTML=s2time(e1.currentTime)+"/"+s2time(e1.duration);
}
function s2time(s){
	var m=parseFloat(s/60).toFixed(0);
	s=parseFloat(s%60).toFixed(0);
	return (m<10? "0"+m:m)+":"+(s<10?"0"+s:s);
}
/* 网页加载完毕后,把进度处理函数添加至视频对象的timeupdate事件中*/
window.addEventListener("load",function(){
	e1.addEventListener("timeupdate",Progress);
});
/*给window.onload事件添加进度处理函数*/
window.addEventListener("load",Progress);



实现的功能:播放,暂停,快进,慢进,前进,后退,音量控制,进度条和时间显示。由此可见通过Audio或Video的属性和方法可以实现更复杂的功能。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5实现音频和视频嵌入 的相关文章

  • SSD目标检测流程深入理解

    前言 SSD是经典的一阶目标检测网络框架 特点是速度快 网络简洁 主要思想 1 数据增强 包括光学变换和几何变换 2 网络骨架 SSD在VGG基础上延伸了4个卷积模块 生成不同尺度的特征图 3 PriorBox与多层特征图 在不同尺度设置预
  • 【H5】 svg动画 旋转属性与虚线属性

    svg 动画 旋转 transform rotate angle x y 不要写在style里面 angle 旋转角度 x y旋转中心 绘制虚线 stroke dasharray a b a b c d 旋转属性 transform rot
  • 前端学习——JavaScript原生实现购物车案例

    一 购物车案例 1 1 案例介绍 今天我们来写另外一个购物车案例 说实话对于我来说这个是花了将近三个小时的时间然后才做出来的 里面可能还存在一些我没有发现的问题 但是能完成基本的功能 对于一些基本的需求都是可以完成的 下面照旧是案例实现的g
  • HDMI中的视频时序分析

    一 前言 建立层次观念 说到时序 我们首先想到的例子是IIC SPI 串口等接口的例子 以我们之前的理解 时序就是传输线上电平随时间变化的顺序 但是但是但是 在HDMI这里 我们应该建立一个新的观念 即时序不一定对应到物理层 即传输线上 这
  • Saas-Export项目之部门数据回显(下拉框和单选框回显)

    Saas Export项目之部门数据回显 之前的经验 做数据回显一般就是在数据修改时需要查询出这条信息 然后再将数据拆分每一项逐一赋值在表单上 通常赋值就行 而且都是input type text这种类型的 所有只要在input里增加val
  • 采样位数、采样率、波特率

    实例 16bit 16K 115200 1 采样位数 即采样值或取样值 就是将采样样本幅度量化 它是用来衡量声音波动变化的一个参数 也可以说是声卡的分辨率 它的数值越大 分辨率也就越高 所发出声音的能力越强 在计算机中采样位数一般有8位和1
  • endnote插入的不是序号(而是大括号加上作者)的解决

    仅作为记录 大佬请跳过 之前用word通过endnote导入文献 都是可以的 在正文出现 1 的引用 但是博主新的word 需要修改参考文献 因此拟重新导入参考文献来修改 但发现导入的都是 Dou 2017 在正文中 文章目录 解决 参考
  • c语言药房管理系统

    include
  • 58同城 -- 前端一面

    面我的是一个小哥哥 面试体验挺好的 大概进行了35分钟左右 自我介绍 面试内容 为什么向做前端 怎么学习的前端 本人非科班哈 然后问我项目 直接问项目 没问笔试令我有点意外 问我印象最深的项目 印象最深的功能 遇到的难点 前端存储的区别 C
  • 浏览器主页被篡改360篡改浏览器主页,官方四步最完美解决办法

    以前写过一篇浏览器主页被360篡改成他们的主页的文章 那时真的就是气的直接卸载了360 之后通过修改注册表的方式 将主页修改回来 方法很暴力 由于重做了系统 360又被重新安装了回来 结果和以往一样 我的主页还是被强制修改了 但是这次我冷静
  • jquery attr()方法 添加,修改,获取对象的属性值

    转自 http hi baidu com 0701u item b8ec62c1daba973eef466524 jquery中用attr 方法来获取和设置元素属性 attr是attribute 属性 的缩写 在jQuery DOM操作中会
  • HTML 5 标签、属性、事件及浏览器兼容性速查表

    HTML 5 可以说是近十年来 Web 标准最巨大的飞跃 和以前的版本不同 HTML 5 并非仅仅用来表示 Web 内容 它的使命是将 Web 带入一个成熟的应用平台 在这个平台上 视频 音频 图象 动画 以及同电脑的交互都被标准化 尽管
  • WEB交互界面易用性设计和验收的指导性原则

    随着企业intranet和国际internet的迅速发展 越来越多的工作流程 商务交易 教育 培训 会议和讲座 以及个人消费娱乐都被转移到所谓的万维网 World Wide Web 以下简称WEB 上来了 与此相对应的是交互操作的复杂性越来
  • 表格嵌套与合并

  • 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业 (1)

    HTML5期末大作业 动漫电影主题 电影动漫言叶之庭 4页 带音乐 HTML CSS JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 大学生毕设网页设计源码HTML 1 临近期末 你还在为H
  • 抖音如何变现(赚钱)

    未来 每个人都能出名15分钟 安迪 沃霍尔 美国著名波谱艺术领袖 有必要见一下伟大预言家的风采 预言了短视频的兴起 突如一夜春风来 五洲四海刷抖音 2017 2018抖音突然火起了 从城市到农村 从国内到国外 从老人到小孩 从男人到女人 各
  • elementui 禁止浏览器自动填充用户名密码

    浏览器这功能在登录的时候挺好用的 但是在注册和管理的时候就很难受了 所以 在普通的input上直接off就行了
  • C#使用NuGet包播放视频之二————读取RTSP流

    RTSP流的读取 上篇文章做到读取本地摄像头 基本事都做完了 这篇文章将RTSP流加进去 双击窗体中ToolStrip的RTSP 为之添加事件 事件中编写代码如下
  • webpack5 配置&使用 文档(大全)

    一 起步 1 基本安装 首先我们创建一个目录 初始化 npm 然后 在本地安装 webpack 接着安装 webpack cli 此工具用于在命令行中运行 webpack mkdir webpack demo cd webpack demo
  • localStorage和sessionStorage和Cookie的区别

    localStorage和sessionStorage和Cookie是前端开发中三种常见的临时存储客户端会话信息或者数据的方法 它们都存储在客户端中 区别 一 三者存储的有效时期不同 1 Cookie存储的有效时期可以设置 一般在浏览器关闭

随机推荐

  • 什么是相关性

    我们曾经讲过 默认情况下 返回结果是按相关性倒序排列的 但是什么是相关性 相关性如何计算 每个文档都有相关性评分 用一个正浮点数字段 score 来表示 score 的评分越高 相关性越高 查询语句会为每个文档生成一个 score 字段 评
  • OPENCV+QT环境配置

    qt opencv开发入门 4步搞定opencv环境配置2 https www bilibili com video BV1f34y1v7t8 vd source 0aeb782d0b9c2e6b0e0cdea3e2121eba 第一步 安
  • U20.4 升级 pytorch 1.11

    一 系统环境 1 系统已安装 pytorch 1 7 1 8 a pip install torch 1 8 2 cu111 torchvision 0 9 2 cu111 torchaudio 0 8 2 f https download
  • 小编必看,教你如何使用微信公众号编辑器快速排版精美文章

    对于小编而言 写作就是每天的日常 图文排版是公众号的形象 也是新媒体运营小编必须掌握的技能 一篇文章除了内容优质之外 排版也是非常重要的 好的排版才能让读者有更好的阅读体验 俗话说 工欲善其事 必先利其器 众多微信公众号编辑器中 推荐使用来
  • CMAKE语法:add_definitions、add_compile_options

    前言 CMAKE命令通用理解 command
  • SQL_开发技巧(附阿里巴巴开发规范)

    目录 一 数据库命令规范 1 1 explain 1 2 单表delete或者update语句 加个limit 1 3 where后字段 隐式转换 1 4 减少不必要的查询字段 1 5 SQL命令行修改数据 养成begin commit 事
  • 【ProVerif学习笔记】6:握手协议(handshake protocol)建模

    这节先不继续往下看 巩固一下对ProVerif建模握手协议的理解 握手协议的流程如下 ex handshake pv 只验证保密性 手册里在引入security性质之前 握手协议的模型如下 对称加密相关 对称密钥 type key 对称加密
  • Cookie中允许的字符

    本文翻译自 Allowed characters in cookies this one s a quickie 这是一个快捷方式 What are the allowed characters in both cookie name an
  • Latex Skills

    ModernCV http 519488126 blog 163 com blog static 722401602014010555221 Paper 1 Blank 两个quad空格 a qquad b a qquad b 两个m的宽度
  • Top 5 OSSInsight 年度最佳 MLOps 开源工具

    MLOps 即机器学习的 DevOps 它能够帮助企业或组织更好地管理生产中的机器学习模型的复杂性 从而使机器学习项目更快速 更可靠地推广到市场 在本文中 我们将回顾 OSSInsight io 2022 年列出的排名前 5 的最热门开源
  • 多业务建模在美团搜索排序中的实践

    总第460篇 2021年 第030篇 美团搜索排序是一个典型的多业务混合排序建模问题 这种多业务场景搜索存在很多挑战 本文聚焦到店商家多业务场景的多业务排序建模优化工作 希望能对从事相关工作的同学有帮助 引言 排序流程简介 多业务建模实践
  • Android token失效统一跳转登陆界面,基于okhttp+广播通信

    第一步找个Activity注册广播监听 一般选择app主框架activity OkHttp拦截器写法 public class TokenInterceptor implements Interceptor private static f
  • Visual Studio(vs)与Pycharm,IDEA中常用快捷键汇总

    目录 Visual Studio 窗口管理 搜索 在编辑器中查找 代码编辑器 工具栏 调试 常用 Pycharm IDEA中 Ctrl 快捷键 Alt 快捷键 Shift 快捷键 Ctrl Alt 快捷键 Ctrl Shift 快捷键 Al
  • C++11 ——— 可变参数模板

    文章目录 可变参数模板的概念 可变参数模板的定义方式 参数包的展开方式 递归展开参数包 逗号表达式展开参数包 STL容器中的emplace相关接口函数 可变参数模板的概念 可变参数模板是C 11新增的最强大的特性之一 它对参数高度泛化 能够
  • nginx php站点配置文件,Nginx配置文件详解及多站点配置

    Nginx配置文件详解 配置文件在 etc nginx nginx conf nginx root目录修改报错403解决办法 chmod R 755 目录 usr share nginx html 修改nginx用户为其所有者 chown
  • 前腾讯员工不堪房价回老家进国企!享受清闲日子,但担心又随之而来

    在互联网大厂拿命挣高薪VS回老家进国企提前养老 哪个才是更好的生活 一位前腾讯员工辞职后回老家省会进了国企 过着清闲舒服的日子 却担心再这么下去自己就废了 真是个上进的小哥哥 到手18W 工作量巨少 每天在办公室都不知道干嘛 下午五点就下班
  • 硬盘的三大种类

    文章目录 一 传统硬盘 HDD Hard Disk Drive 二 固态硬盘 SSD Solid State Drive 三 混合硬盘 hybrid hard drive HHD 四 对比 一 传统硬盘 HDD Hard Disk Driv
  • 实验2linux进程控制与通信,实验2 进程控制与通信管理word文档良心出品

    实验2 进程控制与通信管理word文档良心出品 由会员分享 可在线阅读 更多相关 实验2 进程控制与通信管理word文档良心出品 13页珍藏版 请在人人文库网上搜索 1 年级11级专业计算机科学与技术班级五班组号12组实验室9 205日期2
  • ChatGPT?听说Biying把它下架了

    ChatGPT被玩疯了 开始放飞自我 ChatGPT版微软必应上线不到10天 就被网友玩坏了 先说这个词 放飞自我 什么东西才会放飞自我 人放飞自我 人 你确定是人 所以让我们来把上面的句子改写一下 什么东西才会放飞自我 人才会放飞自我 所
  • HTML5实现音频和视频嵌入

    简介 HTML5未出来之前 在线的音频和视频都是借助Flash或者第三方工具实现的 现在HTML5也支持了这方面的功能 在一个支持HTML5的浏览器中 不需要安装任何插件就能播放音频和视频 原生的支持音频和视频 为HTML5注入了巨大的发展