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

HTML5 Audio(音频)学习笔记

一、HTML5 音频简介

HTML5 引入了 <audio> 元素,用于在网页中播放音频文件。这使得音频的嵌入变得更加简单和标准化。在 HTML5 之前,大多数音频是通过插件(如 Flash)来播放的,但这种方式存在兼容性问题,因为并非所有浏览器都支持相同的插件。HTML5 的 <audio> 元素为音频播放提供了一种标准方法。

二、浏览器支持情况

  • Internet Explorer 9+FirefoxOperaChromeSafari 都支持 <audio> 元素。

  • 注意:Internet Explorer 8 及更早版本不支持 <audio> 元素。

三、基本用法

1. 基本语法

在 HTML5 中嵌入音频的基本语法如下:

HTML复制

<audio controls>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
  您的浏览器不支持 audio 元素。
</audio>

预览

  • <audio> 元素提供了播放、暂停和音量控件来控制音频。

  • <audio> 标签之间插入的内容是为不支持 <audio> 元素的浏览器提供的备用内容。

  • <audio> 元素允许使用多个 <source> 元素,<source> 元素可以链接不同的音频文件,浏览器将使用第一个支持的音频文件。

2. 支持的音频格式

目前,<audio> 元素支持三种音频格式:

  • MP3:MIME 类型为 audio/mpeg

  • Wav:MIME 类型为 audio/wav

  • Ogg:MIME 类型为 audio/ogg

不同浏览器对这些格式的支持情况如下表所示:

浏览器MP3WavOgg
Internet Explorer 9+YESNONO
Chrome 6+YESYESYES
Firefox 3.6+YESYESYES
Safari 5+YESYESNO
Opera 10+YESYESYES

四、使用 DOM 控制音频

<audio> 元素支持多种方法、属性和事件,可以通过 JavaScript 进行控制。例如:

  • 方法play()pause() 等,用于控制音频的播放和暂停。

  • 属性pausedcurrentTime 等,可以读取或设置音频的状态和播放时间。

  • 事件playpause 等,可以监听音频的播放和暂停事件。

示例代码

以下是一个简单的示例,展示如何使用 JavaScript 控制 <audio> 元素:

HTML复制

<audio id="myAudio" controls>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
  您的浏览器不支持 audio 元素。
</audio>
<button onclick="playAudio()">播放</button>
<button onclick="pauseAudio()">暂停</button>

<script>
  function playAudio() {
    document.getElementById("myAudio").play();
  }

  function pauseAudio() {
    document.getElementById("myAudio").pause();
  }
</script>

预览

五、相关标签

1. <source> 标签

<source> 标签用于定义多种媒体资源,例如 <audio><video>。它可以链接不同的音频文件,浏览器将使用第一个可识别的格式。

2. <track> 标签

<track> 标签用于定义在媒体播放器中的文本轨迹,例如字幕、章节等。虽然 <track> 标签主要用于视频,但它也可以用于音频,例如提供音频的歌词或章节信息。

相关文章:

  • Elasticsearch客户端工具初探--kibana
  • PyTorch处理数据--Dataset和DataLoader
  • Springboot高版本适配人大金仓
  • qtcore在docker容器中运行
  • string 的接口
  • 有额外限制的 bellman_ford 算法
  • Docker技术全景解析
  • 串行通信 与 并行通信 对比
  • 3、实际常用命令【待补充】
  • rocketmq零拷贝技术底层实现
  • PgDog:一个PostgreSQL分布式集群中间件
  • 【前端常用函数】
  • 达梦改密码时不想看到明文
  • 下载vmware17
  • SQL-木马植入、报错注入及其他
  • 【算法day22】两数相除——给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。
  • C++ 与 C 语言中的链表初始化方式对比(数据结构)
  • 【Linux】环境搭建 - 使用Mac电脑连接树莓派
  • [Leetcode]单链表回顾
  • Linux系统中-cp命令/mv命令/rename命令/rm命令
  • 外交部:反对美方人士发表不负责任谬论
  • 男子不满和睦家医院手术效果还遇到了“冒牌医生”?院方回应
  • 多个侵华日军细菌战部队留守名簿文件首次公布
  • 中国-拉共体成员国重点领域合作共同行动计划(2025-2027)
  • 【社论】个人破产探索,要守住“诚实而不幸”的底线
  • 北洋“修约外交”的台前幕后——民国条约研究会档案探研