篇介紹了前端入門——html 中如何使用圖片,今天講下如何使用視頻和音頻等多媒體元素,它們能讓你的網頁更加豐富,讀者相對于文字圖片更愿意觀看視頻和音頻或其它多媒體。在本教程中,您將了解到不同的多媒體格式,以及如何在您的網頁中使用它們。
是多種媒體的綜合,一般包括文本,聲音和圖像等多種媒體形式。在計算機系統中,多媒體指組合兩種或兩種以上媒體的一種人機交互式信息交流和傳播媒體。使用的媒體包括文字、圖片、照片、聲音、動畫和影片,以及程式所提供的互動功能。
在因特網上,您會經常發現嵌入網頁中的多媒體元素,現代瀏覽器已支持多種多媒體格式。
多媒體元素(比如視頻和音頻)存儲于媒體文件中。多媒體元素也擁有帶有不同擴展名字的文件格式,比如 .swf、.wmv、.mp3 以及 .mp4。具體有哪些格式可以參考 w3cshool 網站的介紹,https://www.w3cschool.cn/html5/html5-video.html ,https://www.w3cschool.cn/html5/html5-audio.html。
直到現在,網頁上仍然不存在一項顯示視頻的標準。今天,大多數視頻是通過插件(比如 Flash)來顯示的。然而,并非所有瀏覽器都擁有同樣的插件。HTML5 規定了一種通過 video 元素來包含視頻的標準方法。
語法如下:
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
您的瀏覽器不支持Video標簽。
</video>
<video> 元素提供了播放、暫停和音量控件來控制視頻。
同時 <video> 元素也提供了 width 和 height 屬性控制視頻的尺寸。如果設置的高度和寬度,所需的視頻空間會在頁面加載時保留。如果沒有設置這些屬性,瀏覽器不知道視頻的大小,瀏覽器就不能在加載時保留特定的空間,頁面就會根據原始視頻的大小而改變。
<video> 與 </video> 標簽之間插入的內容是提供給不支持 video 元素的瀏覽器顯示的。元素可以鏈接不同的視頻文件。瀏覽器將使用第一個可識別的格式。一個頁面可以使用多個<video> 標簽,<video> 元素支持三種視頻格式: MP4, WebM, 和 Ogg。
顯示效果:
和視頻一樣沒有統一的標準,各個瀏覽器都不一樣。HTML5 規定了在網頁上嵌入音頻元素的標準,即使用 <audio> 元素。通過使用HTML5中的audio功能,你可以實現與flash相同的功能,即回放、跳轉、緩沖等。
語法如下:
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
您的瀏覽器不支持 audio 元素。
</audio>
control 屬性供添加播放、暫停和音量控件。在<audio> 與 </audio> 之間你需要插入瀏覽器不支持的<audio>元素的提示文本 。允許使用多個 <source> 元素。<source> 元素可以鏈接不同的音頻文件,瀏覽器將使用第一個支持的音頻文件。目前, <audio>元素支持三種音頻格式文件: MP3, Wav, 和 Ogg。
顯示效果:
插件(Plug-in)是擴展瀏覽器標準功能的計算機程序,插件被設計用于許多不同的目的:
1、<object> 元素
<object> 元素定義 HTML 文檔中的嵌入式對象。
它旨在將插件(例如 Java applet、PDF 閱讀器和 Flash 播放器)嵌入網頁中,但也可以用于將 HTML 包含在 HTML 中。
如下:
插入一個網頁片段
<object width="100%" height="500px" data="snippet.html"></object>
或者插入一個圖片
<object data="audi.jpeg"></object>
播放一個視頻
<object width="420" height="360"
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="movie.mp4">
<param name="controller" value="true">
</object>
播放一個音頻
<object height="100" width="100" data="song.mp3"></object>
2、<embed> 元素
<embed> 元素也可定義了 HTML 文檔中的嵌入式對象。這是一個 HTML5 標簽,在 HTML4 中是非法的,但是所有瀏覽器中都有效。
插入一個flash文件
<embed width="400" height="50" src="bookmark.swf">
插入html片段
<embed width="100%" height="500px" src="snippet.html">
播放一個音頻
<embed height="100" width="100" src="song.mp3" />
插入一個圖片
<embed src="audi.jpeg">
注意:
大多數瀏覽器不再支持 Java 小程序和插件。
大多數現代瀏覽器關閉了對 Flash 的支持。
我們可以使用 <video> 和 <audio> 標簽來顯示視頻和音頻
如下視頻代碼,HTML 5 <video> 元素會嘗試播放以 mp4、ogg 或 webm 格式中的一種來播放視頻。如果均失敗,則回退到 <embed> 元素。
HTML 5 + <object> + <embed> 是最好的解決辦法。
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240" />
</object>
</video>
如下音頻代碼,HTML5 <audio> 元素會嘗試以 mp3 或 ogg 來播放音頻。如果失敗,代碼將回退嘗試 <embed> 元素。
HTML 5 + <embed> 是最好的解決辦法。
<audio controls="controls" height="100" width="100">
<source src="song.mp3" type="audio/mp3" />
<source src="song.ogg" type="audio/ogg" />
<embed height="100" width="100" src="song.mp3" />
</audio>
到此你以及了解了如何在網頁中使用視頻音頻及其它多媒體控件,趕快自己試試,祝你學習愉快。
參考文獻:https://www.w3school.com.cn/html/html_video.asp
上篇:前端入門——html 中如何使用圖片
下篇:前端入門——html 表格的使用
lash Player是一個耳熟能詳的名字。1997年問世Flash陪伴著一代網民的成長,這其中就包括了00后的我。Flash由著名公司Adobe運營并開發,內置了腳本語言AS,由于其使用矢量圖形實現數據最小化,在低速互聯網時代成為了開發互聯網應用程序、視頻音頻的絕佳工具,甚至沿用至今。
我很早接觸PC和互聯網,也有著開啟電腦先要“本地連接”的經歷,更清晰地記得Office 2000中那搖頭晃腦的回形針(Office Assistant)以及瑞星小獅子。如今的我熟練運用Photoshop的圖層蒙版,也熟悉Android Studio的開發環境和反編譯,同時懂些Linux的皮毛,但是畢竟我才學疏淺,若有紕漏和錯誤歡迎指出。
為什么我們要棄用Flash?
于官方宣傳全球十幾億用戶的光環下,2010年4月Apple前CEO史蒂夫·喬布斯發表了一封著名的公開信,批評了Flash的安全性和穩定性,并指出不會在任何Apple的移動端設備上支持Flash。在此之前的二月,Adobe因為沒能修復Flash已知漏洞一年而道歉。
由于Flash數以百計的安全漏洞,昔日的王者竟成了駭客的溫床——2009年Adobe公司親自承認“Flash Player所列出的所有互聯網技術(包括網絡插件和瀏覽器)的漏洞數量排名第二”。著名安全公司卡巴斯基也于2012年的報告指出“Flash Player漏洞使網絡犯罪分子能夠繞過集成到應用程序中的安全系統。”隨后曝光的漏洞“Magnitude”又能輕易地讓駭客遠程執行代碼。
可以說安全性的Flash最大的問題,然而棄用Flash的理由遠不止這一點——Flash的隱私性同樣被人詬病。
Flash在計算機本地保存數據,由于站點可以通過Flash cookies檢索其他站點保存于本地的用戶信息,例如身份驗證信息、游戲高分或保存的游戲、基于服務器的會話標識、站點首選項、已保存的工作或臨時文件,從而建立用戶檔案,甚至出售用戶數據。如今在Chrome等著名瀏覽器的最新版本中Cookies的本地儲存功能已被禁用。
隨著比Flash更優秀的后來者HTML5標準制定的完成,Flash的處境顯得尷尬透頂。根據Wikipedia的釋義:“HTML5是HTML最新的修訂版本,由萬維網聯盟(W3C)于2014年10月完成標準制定。目標是取代1999年所制定的HTML 4.01和XHTML 1.0標準,以期能在互聯網應用迅速發展的時候,使網絡標準達到匹配當代的網絡需求。廣義論及HTML5時,實際指的是包括HTML、CSS和JavaScript在內的一套技術組合。它希望能夠減少網頁瀏覽器對于需要插件的豐富性網絡應用服務(Plug-in-Based Rich Internet Application,RIA),例如:Adobe Flash、Microsoft Silverlight與OracleJavaFX的需求,并且提供更多能有效加強網絡應用的標準集。”
用淺顯易懂的話來概括,即“HTML5是一種功能上能代替Flash,性能、安全性及隱私性均大幅超過Flash的標準”。
最近Flash發生了什么?為什么重新被推上風口?
2018年2月28日,上海劍圣網絡科技有限公司(即2144游戲)宣布獲得了Adobe Flash Player在中國大陸地區的獨家代理發行權。中國大陸的用戶在訪問Adobe Flash Player的下載頁面時,將強制跳轉到2144域名下的下載頁面,同時會默認捆綁2144游戲中心,且取消捆綁安裝的復選框位置隱蔽。近日網友發現大陸定制版Flash用戶協議區域比Adobe公司的原版下載頁面多了一條的《Helper Service服務協議》。
該協議的其中一部分寫道:
2.2只要用戶開始使用程序,即表示用戶無條件的接受了本協議的相關規定并愿意受其約束,否則用戶無權使用程序。
3.1這款程序是重橙提供的一款為用戶更好的使用Adobe Flash Player的必要程序,沒有程序,Adobe Flash Player無法運行。其功能包括但不限于輔助Adobe Flash Player的更新升級等。
3.3用戶同意本協議,使用程序,表示重橙已經明確告知用戶,隨著Adobe Flash Player版本的更新,程序將會自動靜默安裝新版本的Adobe Flash Player。
5.1用戶同意本協議,使用程序,表示重橙已經明確告知用戶,在用戶使用Adobe Flash Player過程中,重橙可能會通過該程序收集用戶的上網信息,以便為用戶提供更好的產品和/或服務并改善用戶體驗。
5.2重橙承諾采取必要措施保護用戶存放在服務器上的個人數據及收集到的用戶上網信息的安全。除本協議約定的除外情況,重橙保證不對外公開或向第三方提供、公開或者共享用戶的數據及上網信息。
5.3以下情況,重橙對用戶的個人數據及上網信息的披露將不視為違約,具體包括:
(1)重橙已經獲得用戶的明確授權;
(2)根據有關法律法規的要求,重橙負有披露義務的;
(3)司法機關或行政機關基于法定程序要求重橙提供的;
(4)為維護社會公共利益及重橙合法權益,在合理范圍內進行的披露;
(5)重橙可能會和第三方合作向用戶提供相關網絡服務或者其數據收集工具用以完善自身服務,在此情況下,如該第三方愿意承擔與重橙相等的隱私保護責任的,則重橙可在合理范圍內對用戶信息進行披露;
(6)其他必須披露用戶數據和上網信息的情況。5.4盡管重橙已經為用戶的隱私權做了極大努力,仍然不能保證現有的安全措施使用戶數據等不受任何形式的損失。用戶對此情況充分知情,且不會因此追究重橙的法律責任。
經過簡單的閱讀就可以輕易得知,該公司按協議收集用戶數據時、或是不慎將用戶隱私泄露后也不愿負任何法律責任。
按Wikipedia的記錄,中國大陸用戶最后一個能正常安裝使用的ActiveX和NPAPI版本是28.0.0.137,之后的版本均帶有2144的進程“FlashHelperService.exe”,且無法關閉,如果關閉進程則Flash內容就會拒絕顯示。Google Chrome自帶的PPAPI版本不受影響。從Flash Player 30起,中國大陸的ActiveX、NPAPI和Win10上的PPAPI版本開始實行鎖區策略,分成了全球版和大陸版兩個獨立的版本,即大陸用戶無法安裝運行全球版,中國大陸以外的用戶無法安裝運行大陸版。
在此事被曝光不久后中國定制版的Flash立即修改了用戶協議,可謂是做賊心虛。除此收集隱私以外,經過筆者的實際測試,中國定制版的Flash時不時會給你于桌面右下角推送廣告。
當然對此IT之家也給出了相應的解決方案,我不敢對此妄加評論(原因參照知乎),但是我只想說一下這件事情和一家名叫”蘇州思杰馬克丁“的公司有著千絲萬縷的關系,感興趣的朋友可以在知乎、Google上閱讀相關內容。
棄用Flash的道路依然艱險
正是由于Flash的種種缺點,正是由于HTML5的種種優點,處于糟糕的國內互聯網生態下,HTML5始終得不到全面推廣,Flash依然廣泛使用。Flash是網頁牛皮蘚們——貼片小廣告的最愛,同時仍是少數幾個國內視頻網站的盈利大殺器。當你屏蔽了Flash,你也許會感覺整個世界都清凈了。
每當我想要看CCTV5直播時,打開央視電視直播就必須啟用Flash;打開教育局官網查詢比賽程序,卻發現網頁內容七零八落——同是沒啟用Flash。在國際上極度打擊Flash,Google、Microsoft、Facebook和Apple等強強聯手推廣HTML5時,國內生態讓人心寒。多數國產主流瀏覽器仍默認啟用Flash插件,流氓軟件橫行,網絡安全更是無處談起。同國內的Android生態一樣,Windows生態也很糟糕,Flash仍是主流。在此特別點名表揚嗶哩嗶哩、微博(手機網頁端)等國內優秀的HTML5站點,也希望這些站點能高舉新技術好生態的旗幟,給中國網民更好的互聯網環境。
另外值得一提的是,我國落后的信息技術教育助長了互聯網流氓的囂張氣焰。作為一名準高中生,我發現我們的高中重要課程“技術”依然教授著古老的“Flash CS3”這種被淘汰了不知道多少年的課程。如同我當年學習信息奧賽時使用的、至今仍被傳授給廣大學生的古董級語言Pascal(不過即將被取締),我不希望10后、20后繼續學習諸如這類出現在父母大學課本里的古老“高新技術”。
22年了,Flash。你的時代,你的王朝已經結束了。
你永遠活在我們的記憶里,或是那一個個網頁小游戲,或是厭惡至極的網頁廣告都將會成為我們津津樂道的往事。
我希望和你說再見。
本文作者ZeroSimple,授權IT之家發表,如需轉載請聯系Email:hqf0327g@gmail.com,私自轉載原作者將追究責任。
SS3 動畫
CSS3,我們可以創建動畫,它可以取代許多網頁動畫圖像,Flash動畫,和JAVAScripts。
CSS3
動畫
CSS3 @keyframes 規則
要創建CSS3動畫,你將不得不了解@keyframes規則。
@keyframes規則是創建動畫。 @keyframes規則內指定一個CSS樣式和動畫將逐步從目前的樣式更改為新的樣式。
瀏覽器支持
表格中的數字表示支持該屬性的第一個瀏覽器版本號。
緊跟在 -webkit-, -ms- 或 -moz- 前的數字為支持該前綴屬性的第一個瀏覽器版本號。
屬性 | |||||
---|---|---|---|---|---|
@keyframes | 43.04.0 -webkit- | 10.0 | 16.05.0 -moz- | 9.04.0 -webkit- | 30.015.0 -webkit-12.0 -o- |
animation | 43.04.0 -webkit- | 10.0 | 16.05.0 -moz- | 9.04.0 -webkit- | 30.015.0 -webkit-12.0 -o- |
實例
@keyframesmyfirst{from{background:red;}to{background:yellow;}} @-webkit-keyframesmyfirst/* Safari 與 Chrome */{from{background:red;}to{background:yellow;}}
CSS3 動畫
當在 @keyframes 創建動畫,把它綁定到一個選擇器,否則動畫不會有任何效果。
指定至少這兩個CSS3的動畫屬性綁定向一個選擇器:
規定動畫的名稱
規定動畫的時長
實例
把 "myfirst" 動畫捆綁到 div 元素,時長:5 秒:
div{animation:myfirst5s; -webkit-animation:myfirst5s; /* Safari 與 Chrome */}
嘗試一下 ?
注意: 您必須定義動畫的名稱和動畫的持續時間。如果省略的持續時間,動畫將無法運行,因為默認值是0。
CSS3動畫是什么?
動畫是使元素從一種樣式逐漸變化為另一種樣式的效果。
您可以改變任意多的樣式任意多的次數。
請用百分比來規定變化發生的時間,或用關鍵詞 "from" 和 "to",等同于 0% 和 100%。
0% 是動畫的開始,100% 是動畫的完成。
為了得到最佳的瀏覽器支持,您應該始終定義 0% 和 100% 選擇器。
實例
當動畫為 25% 及 50% 時改變背景色,然后當動畫 100% 完成時再次改變:
@keyframesmyfirst{ 0% {background:red;} 25% {background:yellow;} 50% {background:blue;} 100% {background:green;}} @-webkit-keyframesmyfirst/* Safari 與 Chrome */{ 0% {background:red;} 25% {background:yellow;} 50% {background:blue;} 100% {background:green;}}
嘗試一下 ?
實例
改變背景色和位置:
@keyframesmyfirst{ 0% {background:red; left:0px; top:0px;} 25% {background:yellow; left:200px; top:0px;} 50% {background:blue; left:200px; top:200px;} 75% {background:green; left:0px; top:200px;} 100% {background:red; left:0px; top:0px;}} @-webkit-keyframesmyfirst/* Safari 與 Chrome */{ 0% {background:red; left:0px; top:0px;} 25% {background:yellow; left:200px; top:0px;} 50% {background:blue; left:200px; top:200px;} 75% {background:green; left:0px; top:200px;} 100% {background:red; left:0px; top:0px;}}
CSS3的動畫屬性
下面的表格列出了 @keyframes 規則和所有動畫屬性:
屬性 | 描述 | CSS |
---|---|---|
@keyframes | 規定動畫。 | 3 |
animation | 所有動畫屬性的簡寫屬性,除了 animation-play-state 屬性。 | 3 |
animation-name | 規定 @keyframes 動畫的名稱。 | 3 |
animation-duration | 規定動畫完成一個周期所花費的秒或毫秒。默認是 0。 | 3 |
animation-timing-function | 規定動畫的速度曲線。默認是 "ease"。 | 3 |
animation-delay | 規定動畫何時開始。默認是 0。 | 3 |
animation-iteration-count | 規定動畫被播放的次數。默認是 1。 | 3 |
animation-direction | 規定動畫是否在下一周期逆向地播放。默認是 "normal"。 | 3 |
animation-play-state | 規定動畫是否正在運行或暫停。默認是 "running"。 | 3 |
下面兩個例子設置所有動畫屬性:
實例
運行myfirst動畫,設置所有的屬性:
div{animation-name:myfirst; animation-duration:5s; animation-timing-function:linear; animation-delay:2s; animation-iteration-count:infinite; animation-direction:alternate; animation-play-state:running; /* Safari 與 Chrome: */ -webkit-animation-name:myfirst; -webkit-animation-duration:5s; -webkit-animation-timing-function:linear; -webkit-animation-delay:2s; -webkit-animation-iteration-count:infinite; -webkit-animation-direction:alternate; -webkit-animation-play-state:running;}
嘗試一下 ?
實例
與上面的動畫相同,但是使用了簡寫的動畫 animation 屬性:
div{animation:myfirst5slinear2sinfinitealternate; /* Safari 與 Chrome: */ -webkit-animation:myfirst5slinear2sinfinitealternate;}
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。