多站點都會使用到視頻. HTML5 提供了展示視頻的標(biāo)準(zhǔn)。
檢測您的瀏覽器是否支持 HTML5 視頻:
檢測
Web站點上的視頻
直到現(xiàn)在,仍然不存在一項旨在網(wǎng)頁上顯示視頻的標(biāo)準(zhǔn)。
今天,大多數(shù)視頻是通過插件(比如 Flash)來顯示的。然而,并非所有瀏覽器都擁有同樣的插件。
HTML5 規(guī)定了一種通過 video 元素來包含視頻的標(biāo)準(zhǔn)方法。
瀏覽器支持
Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持 <video> 元素.
注意: Internet Explorer 8 或者更早的IE版本不支持 <video> 元素。
HTML5 (視頻)- 如何工作
如需在 HTML5 中顯示視頻,您所有需要的是:
實例
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
您的瀏覽器不支持Video標(biāo)簽。
</video>
<video> 元素提供了 播放、暫停和音量控件來控制視頻。
同時<video> 元素元素也提供了 width 和 height 屬性控制視頻的尺寸.如果設(shè)置的高度和寬度,所需的視頻空間會在頁面加載時保留。。如果沒有設(shè)置這些屬性,瀏覽器不知道大小的視頻,瀏覽器就不能再加載時保留特定的空間,頁面就會根據(jù)原始視頻的大小而改變。
<video> 與</video> 標(biāo)簽之間插入的內(nèi)容是提供給不支持 video 元素的瀏覽器顯示的。
<video> 元素支持多個 <source> 元素. <source> 元素可以鏈接不同的視頻文件。瀏覽器將使用第一個可識別的格式:
視頻格式與瀏覽器的支持
當(dāng)前, <video> 元素支持三種視頻格式: MP4, WebM, 和 Ogg:
瀏覽器 | MP4 | WebM | Ogg |
---|---|---|---|
Internet Explorer | YES | NO | NO |
Chrome | YES | YES | YES |
Firefox | YES | YES | YES |
Safari | YES | NO | NO |
Opera | YES (從 Opera 25 起) | YES | YES |
MP4 = 帶有 H.264 視頻編碼和 AAC 音頻編碼的 MPEG 4 文件
WebM = 帶有 VP8 視頻編碼和 Vorbis 音頻編碼的 WebM 文件
Ogg = 帶有 Theora 視頻編碼和 Vorbis 音頻編碼的 Ogg 文件
視頻格式
格式 | MIME-type |
---|---|
MP4 | video/mp4 |
WebM | video/webm |
Ogg | video/ogg |
HTML5 <video> - 使用 DOM 進(jìn)行控制
HTML5 <video> 和 <audio> 元素同樣擁有方法、屬性和事件。
<video> 和 <audio>元素的方法、屬性和事件可以使用JavaScript進(jìn)行控制.
其中的方法有用于播放、暫停以及加載等。其中的屬性(比如時長、音量等)可以被讀取或設(shè)置。其中的 DOM 事件能夠通知您,比方說,<video> 元素開始播放、已暫停,已停止,等等。
例中簡單的方法,向我們演示了如何使用 <video> 元素,讀取并設(shè)置屬性,以及如何調(diào)用方法。
實例 1
為視頻創(chuàng)建簡單的播放/暫停以及調(diào)整尺寸控件:
播放/暫停 放大 縮小 普通
上面的例子調(diào)用了兩個方法:play() 和 pause()。它同時使用了兩個屬性:paused 和 width。
HTML5 Video 標(biāo)簽
標(biāo)簽 | 描述 |
---|---|
<video> | 定義一個視頻 |
<source> | 定義多種媒體資源,比如 <video> 和<audio> |
<track> | 定義在媒體播放器文本軌跡 |
多數(shù)視頻是通過插件(比如 Flash)來顯示的。然而,并非所有瀏覽器都擁有同樣的插件。
HTML5 規(guī)定了一種通過 video 元素來包含視頻的標(biāo)準(zhǔn)方法。
在HTML5中,video元素目前支持三種格式的視頻文件,
1.Ogg = 帶有 Theora 視頻編碼和 Vorbis 音頻編碼的 Ogg 文件
2.MPEG4 = 帶有 H.264 視頻編碼和 AAC 音頻編碼的 MPEG 4 文件
3.WebM = 帶有 VP8 視頻編碼和 Vorbis 音頻編碼的 WebM 文件
那么在HTML5中如何顯示視頻呢?例子如下:
<video src="demo.mp4" width="500" height="250" controls="controls">您的瀏覽器不支持此種視頻格式。</video>
好了,現(xiàn)在來解釋下video元素中各屬性的含義,其中width、height就不解釋了啊,主要說下controls,顧名思義,controls 就是控件們,哈哈,就是視頻的播放、音量暫停等控件。video元素中間插入的漢字,聰明的你一定知道的,是提示用戶瀏覽器不支持視頻格式使用的。
需要注意的是,要確保適用于Safari 瀏覽器,視頻文件必須是 MP4類型。而ogg格式的視頻則是適用于Firefox、Opera 以及Chrome 瀏覽器。Internet Explorer 8 不支持 video 元素。在 IE 9 中,將提供對使用 MPEG4 的 video 元素的支持。
當(dāng)然了,我們?nèi)绻淮_定自己的瀏覽器支持什么格式的視頻,可以先檢測一下。若是不想麻煩,那怎么辦呢?我們可以這樣:
<video width="500" height="250" controls="controls">
<source src="movie.ogg" type="video/ogg">
<source src="movie.mp4" type="video/mp4">
您的瀏覽器不支持此種視頻格式。
</video>
video 元素允許多個 source 元素。source 元素可以鏈接不同的視頻文件。瀏覽器將使用第一個可識別的格式,這樣我們只要多準(zhǔn)備幾個不同格式的視頻就可以了。
接下來,介紹幾個video標(biāo)簽的屬性,
1.autoplay :出現(xiàn)該屬性意味著視頻在就緒后將自動播放,用法:autoplay="autoplay"
2.controls :出現(xiàn)該屬性意味著向用戶顯示控件,如播放按鈕等,用法:controls="controls"
3.height:設(shè)置高度
4.width:設(shè)置寬度
5.loop:自動重播,用法:loop="loop"
6.preload:視頻在頁面加載時進(jìn)行加載并預(yù)備播放,用法:preload="auto"
auto - 當(dāng)頁面加載后載入整個視頻
meta - 當(dāng)頁面加載后只載入元數(shù)據(jù)
none - 當(dāng)頁面加載后不載入視頻
注意:若使用了autoplay,則忽略preload
7.src:要播放視頻的url
更多嵌入式、物聯(lián)網(wǎng)、安卓、Java、HTML5等請繼續(xù)關(guān)注華清遠(yuǎn)見成都中心!
在QWebEngineView中播放HTML視頻,可以使用HTML5的video元素。首先,確保你已經(jīng)加載了包含視頻標(biāo)簽的HTML頁面。然后,在QWebEngineView中執(zhí)行以下步驟:
1. 獲取QWebEnginePage對象:
```cpp
QWebEnginePage *page = view->page();
```
2. 注冊一個JavaScript回調(diào)函數(shù)來處理視頻事件:
```cpp
QObject::connect(page, &QWebEnginePage::loadFinished, [=](bool ok) {
if (ok) {
page->runJavaScript("document.getElementsByTagName('video')[0].addEventListener('ended', function() { window.videoEnded(); });");
}
});
```
這個示例中,我們注冊了一個名為`videoEnded()`的JavaScript函數(shù)來處理視頻結(jié)束事件。
3. 在C++代碼中定義一個槽函數(shù)來處理視頻結(jié)束事件:
```cpp
public slots:
void handleVideoEnded();
```
4. 將槽函數(shù)與JavaScript回調(diào)函數(shù)關(guān)聯(lián)起來:
```cpp
QObject::connect(page, &QWebEnginePage::javaScriptWindowObjectCleared, [=]() {
page->mainFrame()->addToJavaScriptWindowObject("window", this);
});
```
5. 在槽函數(shù)中實現(xiàn)邏輯:
```cpp
void MyClass::handleVideoEnded()
{
// 處理視頻結(jié)束事件的邏輯
}
```
6. 在JavaScript中調(diào)用C++槽函數(shù):
```javascript
function videoEnded() {
window.videoEnded();
}
```
通過這些步驟,你就可以在QWebEngineView中播放和處理HTML視頻了。請注意,這里只提供了基本的示例,具體實現(xiàn)可能需要根據(jù)你的具體需求進(jìn)行調(diào)整。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。