国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HTML-多媒體嵌入-MDN文檔學習筆記

這篇具有很好參考價值的文章主要介紹了HTML-多媒體嵌入-MDN文檔學習筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

HTML-多媒體與嵌入

查看更多學習筆記:GitHub:LoveEmiliaForever
MDN中文官網

HTML-中的圖片

將圖片放入網頁

可以使用<img/>來將圖片嵌入網頁,它是一個空元素,最少只需src屬性即可工作

    <img src="圖片鏈接" alt="備選文本" width="數字" height="數字" title="圖片的題目">

src指向圖片資源的地址,是<img/>正常工作必不可少的屬性

??除非有必要,否則永遠不要src指向其它網站上的圖片,這被稱之為盜鏈,如果這樣做,你會占用他人帶寬,可能降低你的頁面加載速度,圖片將不受你的控制可能被替換

?像是<img/><video/>這樣的元素有時被稱之為替換元素,因為它們的內容和尺寸由外部資源決定,而非元素本身

alt屬性的屬性值稱之為備選文本,它應該是用于描述圖片的文本
備選文本會在圖片加載出錯時被展示出來,會被搜索引擎所檢索,能夠用在一些特殊應用場景

?備選文本的關鍵是保證網頁在無法加載圖片時的使用

可以給<img/>添加widthheight屬性以指定它的寬高,但是這樣的方法不好
如果要改變圖片在網頁顯示的尺寸應該使用CSS而非HTML

使用title可以給圖片添加標題,圖片標題通常會在鼠標懸停時出現
不要把重要信息放置其中,title屬性的重要性較小

打包圖片和其相關元素

有時,我們希望給圖片一個解說,并通常使用<p>創(chuàng)建解說
但問題是,從語義的角度看,<img/><p>并沒有什么關聯(lián),這可能造成一些問題
此時,可以使用<figure><figcaption>元素打包圖片和圖片相關的元素

    <figure>
        <img src="圖片地址" alt="備選文本">
        <figcaption>對圖片的解釋介紹</figcaption>
    </figure>

其中<figure>可以把一些元素打包成一個整體,<figcaption>則是用來給圖片添加描述的

并且<figure>不一定只是用來打包圖片的,也可以用來打包其它東西

  • 用簡潔、易懂的方式表達意圖
  • 可以放在頁面的某處
  • 為主要內容提供重要的補充說明

因此,<figure>可以是幾個圖片、一段代碼、音視頻、方程、表格之類的

CSS放置圖片和HTML放置圖片的區(qū)別

主要的區(qū)別是語義方面的,也就是說圖片有沒有意義
如果圖片是用來裝飾或干什么的,使用 CSS 更好,如果圖片是有意義的使用 HTML 更好

HTML-中的音視頻

HTML5中出現了<video><audio>標簽,還有一些API對它們進行控制

<video>標簽

<video>標簽可以插入視頻到網頁之中

    <video src="視頻地址" controls>
        <p>后備內容</p>
    </video>
  • src屬性
    • 指向你想要嵌入的視頻的地址
  • controls屬性
    • 用戶在觀看視頻時會需要對視頻進行操作,controls意味著添加瀏覽器默認視頻控制界面
    • 同時,也可以使用JS來根據API構建自定義的控制界面
  • <video>的內容
    • 它的內容叫做后備內容,當瀏覽器不支持<video>時就會顯示這段內容
    • 這是出于兼容性考慮的設計

設置多個播放源

音視頻的格式

視頻文件是有多種格式的,常見的如MP3MP4WebM
他們定義了音頻軌道和視頻軌道的儲存結構,其中還包含描述這個媒體文件的元數據,以及用于編碼的編碼譯碼器等等

一個WebM格式的視頻文件如下所示,它包含音頻軌道、視頻軌道、文本軌道

HTML-多媒體嵌入-MDN文檔學習筆記,MDN前端入門文檔,html,學習,筆記,前端

其中的音頻軌道音頻編解碼器進行操作,視頻軌道視頻編解碼器進行操作

  • WebM格式,在所有現代瀏覽器都支持,除了老版本
  • MP4格式,包括IE在內的所有現代瀏覽器都支持
  • Ogg格式,Firefox和Chrome支持,但它已經被WebM取代

音頻文件則簡單許多,只有一個音軌
常見的音頻文件有MP3FLAC、Ogg

多種格式的播放源

由于MP4是存在版權要收費的,因此有其它的開源視頻格式
瀏覽器內會有各種解碼器,但是不同的瀏覽器擁有的解碼器并不完全相同
因此要準備多種視頻格式

    <video controls>
        <source src="MP4視頻格式" type="video/mp4">
        <source src="WebM視頻格式" type="video/webm">
        <p>備選文本</p>
    </video>

設置多個播放源時,移除了<video>src屬性,然后將<source/>包括在<video>之中以提供源地址信息
<source/>中有type屬性,是用來說明源的格式的
有了type后瀏覽器識別視頻格式會快很多,否則就要一個個加載,一個個嘗試

其它<video>特性

<video>還擁有其它很多的實用屬性,如下所示

    <video controls width="400" height="400"
        autoplay loop muted
        poster="poster.png">
        <source src="MP4文件地址" type="video/mp4">
        <source src="WebM文件地址" type="video/webm">
        <p>備選文本</p>
    </video>
  • width="數字"height="數字"
    • 可以用此屬性控制視頻尺寸,也可以用 CSS 控制視頻尺寸
    • 無論怎么設置高寬,視頻都會保持原來的長寬比,而超出部分以黑邊填充
  • autoplay
    • 這個屬性會使得音視頻自動播放,即使其余部分沒有加載完
    • 盡量不要使用這個屬性,用戶會反感,某些瀏覽器會禁用自動播放
  • loop
    • 讓音頻或視頻循環(huán)播放,同樣不建議使用
  • muted
    • 他會讓媒體靜音
  • poster="圖片地址"
    • 當視頻沒有播放時,它會給視頻一個封面
  • preload="下列選項"用來緩沖較大的文件
    • "none":不緩沖
    • "auto":頁面加載后緩沖媒體文件
    • "metadata":只緩沖媒體文件的元數據

<audio>標簽

<audio><video>使用方法很相似,只有一些地方不同

    <audio controls>
        <source src="MP3音頻地址" type="audio/mp3">
        <source src="Ogg音頻地址" type="audio/ogg">
        <p>備選文本</p>
    </audio>
  • 不支持widthheight標簽,沒有可視化部件
  • 不支持poster,同樣沒有可視化部件

用 JS 控制媒體

可以在 JS 中使用load()方法來重置媒體,也就是重新加載播放

通過監(jiān)聽HTMLMediaElement.audioTracks對象的addtrack事件,可以使用 JS 對音軌的增加做出響應

    const mediaElem = document.getElementById("my-media-element");
    mediaElem.load();

    const mediaElem = document.querySelector("video");
    mediaElem.audioTracks.onaddtrack = function(event) {
    audioTrackAdded(event.track);
    }

給聲音添加字幕

在 HTML5 中可以給<audio><video>添加<track>進而引入字幕文件

字幕文件是使用WebVTT格式編寫的,并有如下類型

  • subtitles:字幕類型,如翻譯字幕等
  • captions:也是字幕,但一般是同步翻譯對白、描述一些重要信息聲音
  • timed descriptions:文字轉為音頻,服務有視覺障礙的人

一個WebVY文件

    WEBVTT

    1
    00:00:22.230 --> 00:00:24.606
    第一段字幕

    2
    00:00:30.739 --> 00:00:34.074
    第二段

    ...

可以在<video><audio>引入<track>標簽,<track>要放在所有的<source>后面

    <video controls>
        <source src="example.mp4" type="video/mp4">
        <source src="example.webm" type="video/webm">
        <track kind="subtitles" src="subtitles_en.vtt" srclang="en">
    </video>

其中<track>標簽有三個屬性kindsrc、srclang

  • kind屬性用來指明字幕的類型,可以有subtitles、captions、descriptions三種類型
  • src用來指明字幕文件路徑
  • srclang指明字幕的語言類型

?添加文本軌道還有利于SEO

object、iframe等其它嵌入技術

<iframe>詳解

iframe使用

<iframe>元素可以讓你將其它的web文檔嵌入到當前文檔中,這很適合將第三方內容嵌入網站內
但它有一些嚴重的安全隱患要考慮,需要謹慎設置

    <iframe src="目標地址"
            width="100%" height="500" frameborder="0"
            allowfullscreen sandbox>
    <p>備選文本</p>
    </iframe>
  • allowfullscreen:允許<iframe>通過全屏API設置為全屏模式
  • frameborder:默認情況為1繪制邊框,設置為0刪除邊框,應該使用CSS設置border:none
  • src:指向要嵌入文檔的地址
  • widthheight:和其它標簽一樣
  • sandbox:沙盒模式,能夠提高安全性

?為了提高速度,在主內容完成加載后,使用 JavaScript 設置<iframe>src屬性更好

安全隱患

雖然<iframe>是有安全隱患的,但只需要謹慎和完善的設置就能夠使用它

網絡的黑客(hacker)常將iframe作為攻擊目標,或稱為攻擊向量1

預防方法如下所示

  1. 只在必要時嵌入第三方內容,這樣會免去許多麻煩
  2. 使用HTTPS為網站提供服務,絕對不能使用HTTP嵌入第三方內容
    • HTTPS減少了遠程內容在傳輸過程中被篡改的機會
    • HTTPS防止嵌入式內容訪問你的父文檔和子文檔的內容
  3. 始終使用sandbox屬性
    • sandbox屬性可以給嵌入的內容自動指定最低限度的權限
    • 使用sandbox=""設置權限
    • 永遠不要同時添加allow-scriptsallow-same-originsandbox屬性值內
  4. 配置CSP指令
    • CSP代表內容安全策略,它提供一組HTTP標頭,旨在提高HTML文檔安全性
    • 可以配置服務器,以防止其它網站嵌入你的網站內容配置X-Frame-Options

<embed><object>

這兩個標簽時用來嵌入多種類型外部內容的通用嵌入工具
例如嵌入Java小程序、Flash、PDF、視頻、SVG、圖像等等

然而它們已經老了,因此了解一下以防遇到它們是不知道是干什么用的

HTML-多媒體嵌入-MDN文檔學習筆記,MDN前端入門文檔,html,學習,筆記,前端

其它的嵌入標簽

其它還有一些HTML5的嵌入標簽
<canvas>用于 JS 生成的 2D 和 3D 圖形
<svg> 用于嵌入矢量圖形

嵌入矢量圖形

什么是矢量圖形

網絡上主要有兩種類型的圖片

  • 像素圖:包含的是像素位置和像素顏色等信息,放大會像素化
  • 矢量圖:包含了圖形和路徑的定義,是使用算法計算出圖形的圖片,放大照樣清晰

什么是SVG

SVG是用于描述矢量圖像的XML語言,它基本上是像 HTML 一樣的標記,只是你有許多不同的元素來定義要顯示在圖像中的形狀,以及要應用于這些形狀的效果

    <svg version="1.1"
        baseProfile="full"
        width="300" height="200"
        xmlns="http://www.w3.org/2000/svg">
    <rect width="100%" height="100%" fill="black" />
    <circle cx="150" cy="100" r="90" fill="blue" />
    </svg>

上面的代碼將展示如下圖案
HTML-多媒體嵌入-MDN文檔學習筆記,MDN前端入門文檔,html,學習,筆記,前端

雖然可以通過手動編寫簡單SVG,但遇到復雜圖形時還是使用像inkscape、illustrator這樣的編輯器更好

SVG的優(yōu)點 SVG的缺點
圖像中的文本仍可訪問,利于SEO SVG容易變復雜,使得文件大小處理速度上升
SVG可以被CSS、JS操作 SVG創(chuàng)建可能更難
放大不會失真 老舊瀏覽器不兼容它

添加SVG到頁面

使用<img>添加SVG
    <img
        src="svg圖像地址"
        alt="備選文本"
        height=""
        width="" />
優(yōu)點 缺點
使用方便快捷 無法使用css、js操作svg
可以將其作為<img>對待 不能應用css偽類重設圖像樣式
在HTML中引入SVG代碼
    <svg width="300" height="200">
        <rect width="100%" height="100%" fill="green" />
    </svg>

直接打開SVG并復制它的代碼到HTML中,這稱為SVG內聯(lián)

優(yōu)點 缺點
減少HTTP請求 讓HTML更加繁雜
可以用css、js操作 會增加HTML大小
SVG唯一使用CSS交互、CSS動畫的方法 瀏覽器不把它當作普通圖片對待
可以把它包裹在超鏈接內 需要兼容老舊瀏覽器
使用<iframe>嵌入SVG
    <iframe src="triangle.svg" width="500" height="500" sandbox>
        <img src="triangle.png" alt="Triangle with three unequal sides" />
    </iframe>

這不是個好方法,如果瀏覽器不支持<iframe>則會回退到備選文本,此外除非SVG和網頁同源,否則不能用js操作它

響應式圖片

為什么用響應式圖片

由于設備的不同,每個人的屏幕、分辨率都不一樣
同樣的圖片在不同設備上顯示的效果不同,有時會產生不理想的效果

即使響應式的改變圖片的大小,圖片仍然可能顯示出不理想的效果
因此,有如下解決方法

  • 提供不同分辨率的圖像,以適配清晰度不同的屏幕,稱為分辨率切換問題
  • 為不同的屏幕提供裁剪過后不同大小的圖片,以改進閱讀體驗,稱為美術設計問題

分辨率切換:不同尺寸

可以在<img>內添加srcsetsizes屬性來判斷應該使用什么圖片

<img
    srcset="圖片1地址 圖片1的寬度, 圖片2地址 圖片2的寬度"
    sizes="(max-width: 600px) 480px,
            800px"
    src="備選圖片地址"
    alt="備選文本" />

srcset屬性定義了一系列的圖片信息,每個圖片信息之間用,隔開,一個圖片信息包括

  1. 圖片地址
  2. 空格
  3. 圖片的寬度,真實單位是像素但是寫出來的單位應該是w

sizes定義了一組媒體條件,當條件為真時選擇一個期望尺寸,每個條件之間同樣以,隔開

  1. 一個媒體條件如(max-width:600px)視口寬度小于等于600px
  2. 一個空格
  3. 條件為真時,期望寬度大小

?示例中有一個沒有媒體條件的,那是使用在無匹配條件時的默認選項

在有了這些屬性后,瀏覽器會如下運行:

  1. 檢查設備寬度
  2. 檢查sizes列表真假值,并最終得到期望寬度大小
  3. 加載srcset中最接近期望寬度大小的圖片

?如果在把瀏覽器寬度設置到最小時,沒有加載更小的圖,應該檢查一下此時的視口大小document.querySelector('html').clientWidth,不同瀏覽器可以縮小到的最小寬度不同,有時會超過這個最小寬度

?在<head>中存在這樣的元數據<meta name="viewport" content="width=device-width">,這行代碼會強制讓手機瀏覽器采用它們真實可視窗口的寬度來加載網頁,這樣才能使用響應式

分辨率切換:同尺寸,不同分辨率

結合srcsetx語法能夠讓瀏覽器選擇合適分辨率的圖片

    <img srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
        src="elva-fairy-640w.jpg"
        alt="Elva dressed as a fairy" />

瀏覽器會計算出正在顯示的顯示器的分辨率,然后srcset引用的最適合的圖片,2x代表用兩個或更多設備像素表示一個顯示像素

美術設計

美術設計問題涉及到更改顯示的圖像以適應不同的顯示尺寸
分辨率切換是改圖像尺寸不改圖像內容,美術設計是改更改圖像內容、尺寸

    <picture>
        <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
        <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
        <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    </picture>

<source>可以包含media、srcset、sizestype
mediasrcset不應該一起用,media應該用在美術設計時
type<source>中起到的作用和在<video>起到的作用一樣,用于選擇合適的格式
任何情況下,都應該提供一個<img>作為備選圖片

    <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
    <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
    <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
</picture>

`<source>`可以包含`media`、`srcset`、`sizes`、`type`  
`media`和`srcset`不應該一起用,`media`應該用在美術設計時  
`type`在`<source>`中起到的作用和在`<video>`起到的作用一樣,用于選擇合適的格式  
任何情況下,都應該提供一個`<img>`作為備選圖片  


  1. 攻擊向量就是攻擊者用來獲取本地或遠程網絡和計算機的一種方法,一般用于描述攻擊者(或惡意軟件)的攻擊路徑 ??文章來源地址http://www.zghlxwxcb.cn/news/detail-829835.html

到了這里,關于HTML-多媒體嵌入-MDN文檔學習筆記的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • HTML-介紹-MDN文檔學習筆記

    HTML-介紹-MDN文檔學習筆記

    查看更多學習筆記:GitHub:LoveEmiliaForever MDN中文官網 MDN 文檔引用: 就其核心而言,HTML 是一種相當簡單的、由不同元素組成的標記語言,它可以被應用于文本片段,使文本在文檔中具有不同的含義(它是段落嗎?它是項目列表嗎?它是表格嗎?),將文檔結構化為邏輯塊(

    2024年02月19日
    瀏覽(51)
  • LuatOS-SOC接口文檔(air780E)--audio - 多媒體音頻

    常量 類型 解釋 audio.PCM number PCM格式,即原始ADC數據 audio.MORE_DATA number audio.on回調函數傳入參數的值,表示底層播放完一段數據,可以傳入更多數據 audio.DONE number audio.on回調函數傳入參數的值,表示底層播放完全部數據了 audio.BUS_DAC number 硬件輸出總線,DAC類型 audio.BUS_I2S numb

    2024年02月07日
    瀏覽(23)
  • 05 帶音視頻、多媒體、2D3D顯示加速的嵌入式類芯片介紹

    作者 將狼才鯨 創(chuàng)建日期 2022-04-11 帶硬件音視頻編解碼模塊的芯片有兩類: 一是不包含GPU(支持OpenGL ES、Open VG等協(xié)議),只帶有圖片編解碼器、VPU視頻編解碼器和2D顯示加速(多圖層、打點、畫線、畫矩形、平移、縮放、旋轉、替換、透明)的芯片。 二是包含完整的GPU,支持

    2023年04月08日
    瀏覽(166)
  • 讀數據壓縮入門筆記09_多媒體數據壓縮

    讀數據壓縮入門筆記09_多媒體數據壓縮

    4.6.1.1.?表示一個信號的最大可能功率與影響它的表示精度的破壞性噪聲功率的比值(以對數分貝為單位) 4.6.1.2.?這一度量的基礎是壓縮圖片的均方誤差(mean-square error,MSE) 4.6.1.2.1.?PSNR與MSE之間,存在著反比關系 4.6.1.3.?原始圖像的值與壓縮后的值差別有多大 4.6.2.1.?在比較

    2024年02月16日
    瀏覽(26)
  • 【HTML 往日冒險 09】多媒體 插件 音頻audio 視頻video iframe YouTube iframe bilibili

    HTML 多媒體 Web 上的多媒體指的是音效、音樂、視頻和動畫 不同的瀏覽器以不同的方式處理音效、動畫和視頻 某些元素能夠以內聯(lián)的方式處理,而某些則需要額外的插件 多媒體元素(比如視頻和音頻)存儲于媒體文件中 確定媒體類型的最常用的方法是查看文件擴展名 多媒體

    2024年02月07日
    瀏覽(25)
  • 【HTML5】HTML5 多媒體標簽 ② ( 視頻標簽 <video> | 視頻標簽常見屬性 | autoplay 屬性 | controls 屬性 | poster 屬性 | 設置多個格式視頻 )

    【HTML5】HTML5 多媒體標簽 ② ( 視頻標簽 <video> | 視頻標簽常見屬性 | autoplay 屬性 | controls 屬性 | poster 屬性 | 設置多個格式視頻 )

    HTML 5 的 video 視頻標簽 , 支持 ogg / mpeg 4 ( mp4 ) / webM 三種格式的音頻 , 不同的瀏覽器支持的音頻格式不同 ; IE 瀏覽器 : 9.0 以上版本支持 mp4 格式 ; Firefox 瀏覽器 : 3.5 以上版本支持 ogg 格式 ; 4.0 以上版本支持 webM 格式 ; Opera 瀏覽器 : 10.5 以上版本支持 ogg 格式 ; 10.6 以上版本支持

    2024年02月09日
    瀏覽(95)
  • HarmonyOS學習路之開發(fā)篇—多媒體開發(fā)(圖像開發(fā) 二)

    圖像編碼就是將PixelMap圖像編碼成不同存檔格式圖片,用于后續(xù)其他處理,比如保存、傳輸等。當前僅支持JPEG格式。 ImagePacker主要用于圖像編碼。 接口名 描述 create() 創(chuàng)建圖像打包器實例。 initializePacking(byte[] data, PackingOptions opts) 初始化打包任務,將字節(jié)數組設置為打包后輸

    2024年02月11日
    瀏覽(97)
  • HarmonyOS學習路之開發(fā)篇—多媒體開發(fā)(圖像開發(fā) 一)

    HarmonyOS圖像模塊支持圖像業(yè)務的開發(fā),常見功能如圖像解碼、圖像編碼、基本的位圖操作、圖像編輯等。當然,也支持通過接口組合來實現更復雜的圖像處理邏輯。 圖像解碼 圖像解碼就是不同的存檔格式圖片(如JPEG、PNG等)解碼為無壓縮的位圖格式,以方便在應用或者系統(tǒng)

    2024年02月11日
    瀏覽(87)
  • HarmonyOS學習路之開發(fā)篇—多媒體開發(fā)(相機開發(fā) 一)

    HarmonyOS學習路之開發(fā)篇—多媒體開發(fā)(相機開發(fā) 一)

    HarmonyOS相機模塊支持相機業(yè)務的開發(fā),開發(fā)者可以通過已開放的接口實現相機硬件的訪問、操作和新功能開發(fā),最常見的操作如:預覽、拍照、連拍和錄像等。 相機靜態(tài)能力 用于描述相機的固有能力的一系列參數,比如朝向、支持的分辨率等信息。 物理相機 物理相機就是獨

    2024年02月10日
    瀏覽(91)
  • HarmonyOS學習路之開發(fā)篇—多媒體開發(fā)(相機開發(fā) 二)

    Camera操作類,包括相機預覽、錄像、拍照等功能接口。 接口名 描述 triggerSingleCapture?(FrameConfig frameConfig) 啟動相機幀的單幀捕獲。 triggerMultiCapture?(ListFrameConfig frameConfigs) 啟動相機幀的多幀捕獲。 configure?(CameraConfig config) 配置相機。 flushCaptures?() 停止并清除相機幀的捕獲

    2024年02月11日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包