1.互联网上的音频

直到现在,仍然不存在一项旨在网页上播放音频的标准。

今天,大多数音频是通过插件(比如 Flash)来播放的。然而,并非所有浏览器都拥有同样的插件。

HTML5 规定了在网页上嵌入音频元素的标准,即使用 <audio> 元素。

2.插入音乐 <audio> 标签

目前,<audio> 元素支持的3种文件格式:MP3、Wav、Ogg。

(1)基本使用

<!-- 添加controls属性才会显示控制面板,默认不会显示 -->
<audio controls>
<source src="./mp3/卡农慢摇版.mp3"></source>
</audio>

如图(每个浏览器效果都不一样)

(2)设置自动播放和播放次数

autoplay:如果出现该属性,则音频在就绪后马上播放。

loop:如果出现该属性,则每当音频结束时重新开始播放。

注意:Chrome在2018年10月份更新后关闭了audio、video媒体autoplay自动播放,新版的火狐也不支持。据说只是不支持mp3格式的自动播放,但是能够支持ogg格式的音频自动播放

<audio controls autoplay loop>
<source src="./mp3/卡农慢摇版.mp3"></source>
</audio>

(3)其他属性:

preload:auto|metadata|none 规定是否在页面加载后载入音频

muted:如果出现该属性,则音频输出为静音。

3.插入视频 <video> 标签

目前,<video> 元素支持三种视频格式:MP4、WebM、Ogg。

常用属性有:

controls:显示控制面板,默认不会显示

autoplay:如果出现该属性,则视频在就绪后马上播放。

loop:如果出现该属性,则当媒介文件完成播放后再次开始播放

width:宽度,默认为原媒体文件的宽度

height:高度,默认为原媒体文件的高度

poster:封面图片 默认为视频的第一帧

muted:如果出现该属性,视频的音频输出为静音。

reload:如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。

<video controls>
<source src="./source/最终幻想神罗三巨头乱斗.mp4"></source>
</video>

4.<source> 标签

该标签为媒体元素(比如 <video> 和 <audio>)定义媒体资源,允许您规定两个视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择。

source标签只能二选一

注释:IE 8 或更早版本的 IE 浏览器都不支持\ <source> 标签。

常用属性:

src:规定媒体资源的地址

type:规定媒体资源的 MIME 类型

<audio controls autoplay loop>
<source src="./source/卡农慢摇版.ogg" type="audio/ogg"></source>
<source src="./source/卡农慢摇版.mp3" type="audio/mpeg"></source>
您的浏览器不支持 audio 元素。
</audio>

5.切换媒体文件

可以操作audio或者video的src属性来切换要播放的文件

<body>
<audio controls autoplay loop>
<source src="./source/卡农慢摇版.ogg" type="audio/ogg"></source>
<source src="./source/卡农慢摇版.mp3" type="audio/mpeg"></source>
您的浏览器不支持 audio 元素。
</audio>
</body> <script>
var audio = document.getElementsByTagName("audio")[0]
// 8秒钟后会切换到另一首歌
setTimeout(function(){
audio.src="./source/再见警察.mp3"
console.log(audio.src)
},8000)
</script>

6.自定义视频播放器

原生的播放控制面板在不同浏览器下的样式都不一样,所以一般使用的都是自定义的视频播放器。自定义视频播放器依然使用video标签,并隐藏原生的播放控制面板,使用自定义的控制面板,通过事件监听调用相关的API来操作视频的播放。

例如使用js来监听上一曲/下一曲,音量控制,进度条拖放控制等等。

注意:因为最新的浏览器已经屏蔽自动播放,而且直接调用js代码控制播放也是无效的,必须设置点击监听,在回调中才能控制播放

常用方法:

load() 加载视频

play() 播放视频

pause() 暂停视频

常用属性:

paused 视频是否是暂停状态

duration 视频长度(以秒计)

currentTime 可获取视频当前进度,也可以通过它控制播放进度(以秒计)

volume:音量(0到1,0就是静音,1就是100%)

src: 设置或返回音频/视频元素的当前来源

常用事件

oncanplay 用户可以开始播放视频时触发

ontimeupdate 播放进度更新时触发

onended 播放完毕时触发

onpause 当音频/视频已暂停时触发。

onplay 当音频/视频开始播放时触发。

HTML 音频/视频 DOM 参考手册

https://www.runoob.com/tags/ref-av-dom.html

HTML5 多媒体的更多相关文章

  1. Html5多媒体相关的API---video

    Html5多媒体相关的API---video 在HTML5中,新增了两个元素---video元素与audio元素,其中video元素专门用来播放网络上的视频或电影,而audio元素专门用来播放网络上的 ...

  2. HTML5 多媒体音视频处理

    HTML5 多媒体音视频处理 版权声明:未经博主授权,内容严禁转载 ! 音频处理 - audio HTML5 Audio 音频 目前大多数音频是通过哦插件的形式来播放的. 不同浏览器在网页上播放音频的 ...

  3. 三天学会HTML5 ——多媒体元素的使用

    目录 1. HTML5 Media-Video 2. HTML5 Media-Audio 3. 拖拽操作 4. 获取位置信息 5. 使用Google 地图获取位置信息 多媒体是互联网中的最重要的一部分 ...

  4. HTML5 多媒体标签

    一.多媒体 embed 标签 embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等.url为音频或视频文件及其路径,可以是相对路径或绝对路径. 语法格式: < ...

  5. html5多媒体Video/Audio

    video:    1.常见的视频格式 视频的组成部分:画面.音频.编码格式 视频编码:H.264.theora.VP8(google开源)      2.常见的音频格式     编码:AAC.MP3 ...

  6. css总结16:HTML5 多媒体音频(Audio)视频(video )

    1 显示嵌入网页中的 MP3 文件: <embed height="50" width="100" src="horse.mp3"&g ...

  7. html5——多媒体(四)

    全屏兼容 box.requestFullscreen(); box.webkitRequestFullScreen(); box.mozRequestFullScreen(); <!DOCTYP ...

  8. html5——多媒体(三)

    自定义进度条 1.video标签是内联块,可以设置宽高,但是需要用大盒子将其包裹起来进行定位 2.小盒子设计成进度条样式,并进行定位 3.进度条样式中的特殊按钮可以用web字体 4.通过点击实现视频的 ...

  9. html5——多媒体(二)

    基本方法 load() //重新加载视频 play() //播放 pause() //暂停 基本属性 currentTime //视频播放的当前进度. duration //视频的总时间 paused ...

  10. html5——多媒体(一)

    <audio> 1.autoplay 自动播放 2.controls 是否显不默认播放控件 3.loop 循环播放 4.preload 预加载 同时设置autoplay时些属性失效 5.由 ...

随机推荐

  1. DECL: 针对噪声时间序列的去噪感知对比学习《Denoising-Aware Contrastive Learning for Noisy Time Series》(时间序列、对比学习、去噪)

    今天是2024年9月12日,组会摸鱼,很久没看论文了,在摸鱼看代码,最近IJCAI 2024出来了,找了几篇论文看,首先这是第一篇. 论文:Denoising-Aware Contrastive Le ...

  2. CSS – vw, vh, position fixed and ICB (initial containing block)

    什么是 vw, vh? vh 的 v 指的是 viewport, h 就是 height. 它是 CSS 值的单位就像 px, %. .container { height: 30vh; backgr ...

  3. OData – How It Work

    前言 OData 是很冷门的东西, 用的人少, 开发的人少, 文档自然也少的可怜. 如果真的想用它, 多少要对它机制有点了解. 这样遇到 bug, 想扩展的时候才不至于完全没有路. 主要参考: ODa ...

  4. 深入理解JNDI注入—RMI/LDAP攻击

    目录 前言 JNDI 注入简单理解 透过Weblogic漏洞深入理解 RMI与LDAP的区别 JNDI+RMI 漏洞代码触发链 lookup触发链 JNDI+LDAP 前言 本篇文章初衷是在研究log ...

  5. Vue3——Vite + element-plus +Vue3 项目搭建、"@"别名设置

    1. 环境准备 node 官网 npm 切换国内 npm 源镜像 npm config set registry https://registry.npmmirror.com 查看当前的镜像源 npm ...

  6. JS数据类型&类型转换

    基本数据类型 JS中的数据类型由原始值和对象共同组成,原始值一共有七种原始值: 数值(Number) 大整数(BigInt) 字符串(String) 布尔值(Boolean) 空值(Null) 未定义 ...

  7. vue3自动导入 api ,不需要多次导入 api 了

    安装插件   npm i -D unplugin-auto-import 配置 vite.config.js export default defineConfig({ plugins: [ vue( ...

  8. 10 Self-Attention(自注意力机制)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  9. 《使用Gin框架构建分布式应用》阅读笔记:p1-p19

    <使用Gin框架构建分布式应用>学习第1天,p1-p19总结,总计19页. 一.技术总结 1.go get & go install 执行go get 或者 go install ...

  10. 宏定义define的用法

    #define read(x) scanf("%d",&x); 这行代码是一个宏定义,使用了 C 语言中的 #define 指令.它的作用是定义一个名为 read 的宏,用 ...