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. 深度学习/NLP中的Attention注意力机制

    首先是整体认知,Attention的位置: 传送门1:Attention 机制 传送门2:Attention用于NLP的一些小结 一句话概括:Attention就是从关注全局到关注重点. 借鉴了人类视 ...

  2. JavaScript – 单线程 与 执行机制 (event loop)

    前言 因为在写 RxJS 系列,有一篇要介绍 Scheduler.它需要对 JS 执行机制有点了解,于是就有了这里篇. 参考 知乎 – 详解JavaScript中的Event Loop(事件循环)机制 ...

  3. 推荐3款卓越的 .NET 开源搜索组件库

    前言 最近有不少同学提问:.NET有哪些开源的搜索组件库可以推荐的吗?,今天大姚给大家推荐3款卓越的 .NET 开源搜索组件库,希望可以帮助到有需要的同学. Elasticsearch .NET El ...

  4. MyBatis——简介

    MyBatis MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发 官网:https://mybatis.net.cn/ 持久层 负责将数据保存到数据库的那一层代码 javaEE 三层架 ...

  5. Spring 之 RestTemplate VS WebClient 发送 HTTP请求

    WebClient 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...

  6. ServiceMesh 2:控制面和数据面的职责(图文总结)

    ★ ServiceMesh系列 1 Service Mesh介绍 之前的章节我们详细介绍了ServiceMesh的基础知识. ServiceMesh 是最新一代的微服务架构,作为一个基础设施层,能够与 ...

  7. Nuxt.js 应用中的 app:suspense:resolve 钩子详解

    title: Nuxt.js 应用中的 app:suspense:resolve 钩子详解 date: 2024/10/6 updated: 2024/10/6 author: cmdragon ex ...

  8. SMMU中stage1 和stage2 的意思

    ARM SMMU(System Memory Management Unit)是一种用于ARM架构的内存管理单元,它支持两阶段的地址转换机制,即Stage 1和Stage 2.这种机制允许操作系统和虚 ...

  9. 云原生爱好者周刊:在 PaaS 平台上托管 WebAssembly 应用

    云原生一周动态要闻: Knative v1.1 发布 Nocalhost v0.6.12 发布 CircleCI 的企业功能现在免费了 SolarWinds 修复了一个 Serv-U 漏洞 Nvidi ...

  10. 什么是APP原生开发

    什么是APP原生开发?原生App实际上是一种基于智能手机本地操作系统如Android.IOS并且使用原生程序编写运行的第三方移动应用程序.开发原生App软件需要针对不同智能手机的操作系统来选择不同的A ...