HTML 音頻(Audio)學習筆記

一、HTML 音頻概述

在 HTML 中,音頻可以通過多種方式播放,但要確保音頻在不同瀏覽器和設備上都能正常播放,需要掌握一些技巧。HTML5 引入了 <audio> 元素,為音頻播放提供了一種標準方法,但在 HTML4 中,音頻播放通常依賴于插件,如 <object><embed> 標簽。

二、音頻播放方法及問題

(一)使用插件

  1. <object> 標簽

    • <object> 標簽定義外部內容的容器,可以用來嵌入音頻文件。

    • 示例代碼:

      HTML復制

      <object height="50" width="100" data="horse.mp3"></object>

      預覽

    • 問題

      • 不同瀏覽器對音頻格式的支持不同。

      • 如果瀏覽器不支持該文件格式,且沒有插件,音頻無法播放。

      • 用戶計算機未安裝插件時,音頻無法播放。

  2. <embed> 標簽

    • <embed> 標簽定義外部內容的容器,HTML5 中允許使用,但在 HTML4 中是非法的。

    • 示例代碼:

      HTML復制

      <embed height="50" width="100" src="horse.mp3">

      預覽

    • 問題

      • <embed> 標簽在 HTML4 中無效,頁面無法通過 HTML4 驗證。

      • 不同瀏覽器對音頻格式的支持不同。

      • 如果瀏覽器不支持該文件格式,且沒有插件,音頻無法播放。

      • 用戶計算機未安裝插件時,音頻無法播放。

(二)使用 HTML5?<audio>?元素

  1. <audio> 元素

    • <audio> 元素是 HTML5 新增的標簽,用于播放音頻文件。

    • 示例代碼:

      HTML復制

      <audio controls><source src="horse.mp3" type="audio/mpeg"><source src="horse.ogg" type="audio/ogg">Your browser does not support this audio format.
      </audio>

      預覽

    • 優點

      • 在所有現代瀏覽器中有效。

    • 問題

      • <audio> 標簽在 HTML4 中無效,頁面無法通過 HTML4 驗證。

      • 需要將音頻文件轉換為不同格式以兼容不同瀏覽器。

      • 在老式瀏覽器中不起作用。

(三)最佳 HTML 解決方法

  1. 結合使用 <audio><embed>

    • 示例代碼:

      HTML復制

      <audio controls height="100" width="100"><source src="horse.mp3" type="audio/mpeg"><source src="horse.ogg" type="audio/ogg"><embed height="50" width="100" src="horse.mp3">
      </audio>

      預覽

    • 優點

      • 嘗試使用 <audio> 元素播放音頻,如果失敗則回退到 <embed>

    • 問題

      • 需要將音頻轉換為不同格式。

      • <embed> 元素無法回退顯示錯誤消息。

(四)使用超鏈接

  1. 超鏈接播放音頻

    • 示例代碼:

      HTML復制

      <a href="horse.mp3">Play the sound</a>

      預覽

    • 優點

      • 簡單,用戶點擊鏈接即可播放音頻。

    • 問題

      • 音頻播放依賴于瀏覽器的“輔助應用程序”,用戶體驗可能不佳。

三、音頻格式與瀏覽器支持

  • MP3:支持 Internet Explorer、Chrome 和 Safari。

  • OGG:支持 Firefox 和 Opera。

  • WebM:支持 Chrome 和 Opera。

四、內聯聲音說明

  • 內聯聲音:當音頻作為網頁的一部分時,稱為內聯聲音。

  • 注意事項

    • 內聯聲音可能會讓用戶感到煩惱,建議僅在用戶期望聽到聲音時使用。

    • 用戶可能已關閉瀏覽器中的內聯聲音選項。

五、HTML 多媒體標簽

標簽描述
<embed>定義內嵌對象。HTML4 中不贊成,HTML5 中允許。
<object>定義內嵌對象。
<param>定義對象的參數。
<audio>定義聲音內容。
<video>定義視頻或影片。
<source>定義?<video>?和?<audio>?的多媒體資源。
<track>定義?<video>?和?<audio>?的字幕文件或其他文本文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76549.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php開發rest api,哪個框架最好

在 2025 年&#xff0c;選擇適合開發 REST API 的 PHP 框架需要根據項目需求、性能要求和團隊技術棧進行權衡。以下是一些推薦的 PHP 框架及其適用場景&#xff1a; 1. Laravel 特點&#xff1a;功能豐富&#xff0c;生態系統強大&#xff0c;內置 API 資源&#xff0c;支持 …

前端入門之CSS

CSS: HTML負責定義頁面結構;JS負責處理頁面邏輯和點擊事件;CSS負責用于描述 HTML 元素的顯示方式,通過 CSS 可以控制顏色、字體、布局等。 核心語法: 選擇器: 類選擇器主要用于選中需要添加樣式的 HTML 元素。主要分為:類選擇器(.class-name { ... })、標簽選擇器(…

MCP協議的Streamable HTTP:革新數據傳輸的未來

引言 在數字化時代&#xff0c;數據傳輸的效率和穩定性是推動技術進步的關鍵。MCP&#xff08;Model Context Protocol&#xff09;作為AI生態系統中的重要一環&#xff0c;通過引入Streamable HTTP傳輸機制&#xff0c;為數據交互帶來了革命性的變化。本文將深入解讀MCP協議的…

MySQL - 索引原理與優化:深入解析B+Tree與高效查詢策略

文章目錄 引言一、BTree索引核心原理1.1 索引數據結構演化1.2 BTree的存儲結構通過主鍵查詢&#xff08;主鍵索引&#xff09;商品數據的過程通過非主鍵&#xff08;輔助索引&#xff09;查詢商品數據的過程 MySQL InnoDB 的索引原理 二、執行計劃深度解析三、索引失效的六大陷…

《K230 從熟悉到...》識別機器碼(AprilTag)

《K230 從熟悉到...》識別機器碼&#xff08;aprirltag&#xff09; tag id 《廬山派 K230 從熟悉到...》 識別機器碼&#xff08;AprilTag&#xff09; AprilTag是一種基于二維碼的視覺標記系統&#xff0c;最早是由麻省理工學院&#xff08;MIT&#xff09;在2008年開發的。A…

Linux驅動復習

應用層調用內核層函數稱為系統調用 1.硬件設備管理 1&#xff0c;字符設備驅動&#xff08;一個一個字節&#xff09;——芯片內部外設 &#xff1a;WDT,Timer&#xff0c;adc,iic&#xff0c;SPI,R,UART,LCD,CAMERA,USB,Keyboard&#xff0c;Mouse 2&#xff0c;塊設備驅動&a…

【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit(3)

1.問題描述&#xff1a; PC場景&#xff0c;青少年模式系統API不支持嗎&#xff1f; 解決方案&#xff1a; PC場景&#xff0c;青少年模式系統API不支持&#xff0c;另外文檔上的幾個API也不支持。 2.問題描述&#xff1a; 華為一鍵登錄 Beta7本地運行到手機可以拿到匿名手…

【gdutthesis模板】論文標題太長導致換頁問題解決

標題太長導致換頁問題解決方案如下&#xff1a; 調小下方數值即可

SAP學習筆記 - 豆知識18 - (TODO)Msg 番號 ME154 構成品目無法決定

1&#xff0c;現象 構成品目の決定は不可能です Msg 番號 ME154 構成品目無法決定 2&#xff0c;到Deepseek里找一下解決方案 SAP ME21N中錯誤「組件物料的確定不可行&#xff08;ME154&#xff09;」的解決步驟 此錯誤在創建分包采購訂單時出現&#xff0c;通常由于系統無…

10.多線程

預備知識 預備知識一 預備知識二 預備知識三 如何理解進程和線程的關系&#xff0c;舉一個生活中的例子 家庭&#xff1a;進程家庭成員&#xff1a;線程 每個家庭成員都會為這個家庭做貢獻&#xff0c;只不過大家都在做不同的事情&#xff08;比如&#xff1a;我們在上學&…

Python入門(8):文件

1. 文件基本概念 文件&#xff1a;存儲在計算機上的數據集合&#xff0c;Python 通過文件對象來操作文件。 文件類型&#xff1a; 文本文件&#xff1a;由字符組成&#xff0c;如 .txt, .py 二進制文件&#xff1a;由字節組成&#xff0c;如 .jpg, .mp3 2. 文件打開與關閉…

市場交易策略優化與波動管理

市場交易策略優化與波動管理 在市場交易中&#xff0c;策略的優化和波動的管理至關重要。市場價格的變化受多種因素影響&#xff0c;交易者需要根據市場環境動態調整策略&#xff0c;以提高交易的穩定性&#xff0c;并有效規避市場風險。 一、市場交易策略的優化方法 趨勢交易策…

HTTP數據傳輸的幾個關鍵字Header

本文著重針對http在傳輸數據時的幾種封裝方式進行描述。 1. Content-Type(描述body內容類型以及字符編碼) HTTP的Content-Type用于定義數據傳輸的媒體類型&#xff08;MIME類型&#xff09;&#xff0c;主要分為以下幾類&#xff1a; (一)、?基礎文本類型? text/plain? …

面向教育領域的實時更新RAG系統:核心模塊設計與技術選型實踐指南

目錄 面向教育領域的實時更新RAG系統&#xff1a;核心模塊設計與技術選型實踐指南 一、業務需求分析 二、系統架構設計&#xff08;核心模塊&#xff09; 三、核心模塊詳解與技術選型建議 &#xff08;一&#xff09;實時更新向量知識庫 &#xff08;二&#xff09;教材與…

k8s patch方法更新deployment和replace方法更新deployment的區別是什么

在Kubernetes中&#xff0c;patch 和 replace 方法用于更新資源&#xff08;如 Deployment&#xff09;&#xff0c;但它們的實現方式和適用場景有顯著差異。以下是兩者的核心區別&#xff1a; 1. 更新范圍 replace 方法 完全替換整個資源配置。需要用戶提供完整的資源定義&…

解決安卓手機WebView無法直接預覽PDF的問題(使用PDF.js方案)

在移動端開發中&#xff0c;通過 webview 組件直接加載PDF文件時&#xff0c;不同平臺的表現差異較大&#xff1a; iOS & 部分安卓瀏覽器&#xff1a;可正常內嵌預覽&#xff08;依賴系統內置PDF渲染能力&#xff09; 大多數安卓設備&#xff1a;由于缺乏原生PDF插件&…

基于javaweb的SSM+Maven機房管理系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

7-6 混合類型數據格式化輸入

本題要求編寫程序&#xff0c;順序讀入浮點數1、整數、字符、浮點數2&#xff0c;再按照字符、整數、浮點數1、浮點數2的順序輸出。 輸入格式&#xff1a; 輸入在一行中順序給出浮點數1、整數、字符、浮點數2&#xff0c;其間以1個空格分隔。 輸出格式&#xff1a; 在一行中…

【GPIO8個函數解釋】

函數解釋 void GPIO_DeInit(GPIO_TypeDef* GPIOx); 作用&#xff1a;將指定GPIO端口的所有寄存器恢復為默認值。這會清除之前對該端口的所有配置&#xff0c;使其回到初始狀態。使用方法&#xff1a;傳入要復位的GPIO端口指針&#xff0c;例如GPIOA、GPIOB等。 void GPIO_AF…

將圖表和表格導出為PDF的功能

<template><div><divref"pdfContent"style"position: relative; width: 800px; margin: 0 auto"><!-- ECharts 圖表 --><div id"chart" style"width: 100%; height: 400px" /><!-- Element UI 表格 …