vedio.ontimeupdate()和video.onloadeddata()

video.onloadeddata?()

video.onloadeddata?是 JavaScript 中用于監聽 HTML?<video>?元素?「當前幀數據已加載」?的事件處理器。當視頻的第一幀畫面數據加載完成(足以開始播放)時,會觸發此事件。


1. 基本用法

const video = document.querySelector('video');video.onloadeddata = function() {console.log('視頻第一幀已加載,可以播放了!');
};
  • 觸發時機

    • 視頻元數據(如分辨率、時長)和第一幀畫面加載完成。

    • 早于?oncanplay(可流暢播放的事件)。

  • 用途:在視頻初始渲染時執行操作(如顯示封面、初始化播放器)。


2. 替代方案:addEventListener

推薦使用?addEventListener,避免覆蓋已有事件:

video.addEventListener('loadeddata', function() {console.log('視頻數據已加載');
});

3. 常見應用場景

① 顯示視頻封面(第一幀)
video.addEventListener('loadeddata', function() {const canvas = document.createElement('canvas');canvas.width = video.videoWidth;canvas.height = video.videoHeight;canvas.getContext('2d').drawImage(video, 0, 0);document.querySelector('.video-cover').appendChild(canvas);
});
② 初始化播放器狀態
video.addEventListener('loadeddata', function() {// 顯示自定義播放按鈕document.querySelector('.play-button').style.display = 'block';
});
③ 檢測視頻基礎信息
video.addEventListener('loadeddata', function() {console.log('視頻分辨率:', video.videoWidth, 'x', video.videoHeight);console.log('視頻時長:', video.duration);
});

4. 與其他視頻事件的區別

事件觸發條件
onloadedmetadata僅元數據(如時長、分辨率)加載完成,但畫面未加載。
onloadeddata第一幀畫面加載完成,可顯示畫面但可能無法流暢播放。
oncanplay已加載足夠數據可開始播放(但不保證不卡頓)。
oncanplaythrough已加載足夠數據可流暢播放至結束(理想狀態)。

5. 注意事項

  • 網絡環境影響:如果視頻文件較大或網絡慢,loadeddata?可能延遲觸發。

  • preload屬性相關:若?<video preload="none">,需用戶交互后才會加載數據。

  • 移動端兼容性:部分移動瀏覽器可能延遲加載數據以節省流量。


總結

video.onloadeddata?是視頻處理的基礎事件之一,適合在視頻畫面首次可用時執行初始化操作。若需更高兼容性,建議結合?loadedmetadata?和?canplay?事件使用。

video.ontimeupdate()

video.ontimeupdate()?是 JavaScript 中用于監聽 HTML?<video>?元素播放時間更新的事件處理器。當視頻播放時,只要當前播放位置(currentTime)發生變化,就會觸發該事件。


1. 基本用法

const video = document.querySelector('video');video.ontimeupdate = function() {console.log('當前播放時間:', video.currentTime);
};
  • 觸發時機:視頻播放、用戶拖動進度條、跳轉時間點等。

  • 用途:實時監測播放進度,用于更新進度條、顯示字幕、記錄觀看行為等。


2. 替代方案:addEventListener

更推薦使用?addEventListener,避免覆蓋已有事件:

video.addEventListener('timeupdate', function() {console.log('時間更新:', video.currentTime);
});

3. 常見應用場景

① 自定義進度條同步
video.addEventListener('timeupdate', function() {const progress = (video.currentTime / video.duration) * 100;document.querySelector('.progress-bar').style.width = `${progress}%`;
});
② 字幕/彈幕顯示
const subtitles = [{ time: 5, text: "第一句字幕" },{ time: 10, text: "第二句字幕" }
];video.addEventListener('timeupdate', function() {subtitles.forEach(item => {if (video.currentTime >= item.time && video.currentTime < item.time + 2) {document.querySelector('.subtitle').textContent = item.text;}});
});
③ 記錄觀看進度
video.addEventListener('timeupdate', function() {localStorage.setItem('videoProgress', video.currentTime);
});// 下次打開頁面時恢復進度
video.currentTime = parseFloat(localStorage.getItem('videoProgress')) || 0;

4. 注意事項

  • 性能優化timeupdate?觸發頻率較高(約每秒4-60次),避免在回調中執行復雜計算。

  • seeked事件區別seeked?僅在用戶手動跳轉后觸發,而timeupdate在播放過程中持續觸發。


總結

video.ontimeupdate?是控制視頻交互的核心事件之一,適用于進度跟蹤、動態內容加載等場景。推薦使用?addEventListener('timeupdate')?以保持代碼靈活性。

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

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

相關文章

Baklib內容中臺革新企業知識實踐

Baklib智能知識中樞構建 作為現代企業知識管理的核心架構&#xff0c;Baklib內容中臺通過整合多源異構數據形成智能化知識中樞&#xff0c;實現從信息采集到價值轉化的全鏈路管理。其底層采用跨平臺數據貫通技術&#xff0c;支持API接口與企業現有CRM、ERP系統無縫對接&#x…

用不太嚴謹的文字介紹遙測自跟蹤天線的基本原理

前兩天跟一個客戶見面的時候&#xff0c;客戶問我&#xff1a;遙測自跟蹤天線能夠跟蹤目標&#xff0c;是什么原理&#xff1f;不需要目標的位置&#xff0c;怎么做到自跟蹤的&#xff1f; 突然一瞬間&#xff0c;有點語塞。 難道要介紹天線、饋源、極化、左旋、右旋、和差網…

VS配置redis環境、redis簡單封裝

一、安裝redis數據庫 1.下載redis的壓縮包 wget https://download.redis.io/releases/redis-6.0.5.tar.g 2.解壓縮redis壓縮包&#xff0c;一般就在當前路徑 tar -zvxf redis-6.0.5.tar.gz -C /usr/local/redis 方便找我把它解壓縮在/usr/local/redis&#xff0c;如果沒有r…

C++23 已移除特性解析

文章目錄 引言C23 已移除特性介紹1. 垃圾收集的支持和基于可達性的泄漏檢測&#xff08;P2186R2&#xff09;背景與原理存在的問題移除的影響 2. 混合寬字符串字面量拼接非良構&#xff08;P2201R1&#xff09;寬字符串編碼概述混合拼接的問題示例分析移除的意義 3. 不可編碼寬…

Cloudflare

Cloudflare 是一個網絡基礎設施和網站安全服務提供商&#xff0c;它的主要作用是讓網站 更快、更安全、更可靠。簡單來說&#xff0c;它是一個“護盾 加速器”。 &#x1f9e9; Cloudflare 的主要功能&#xff1a; 1. &#x1f680; 加速網站訪問&#xff08;CDN&#xff09…

Spring Boot啟動慢?Redis緩存擊穿?Kafka消費堆積?——Java后端常見問題排查實戰

Spring Boot啟動慢&#xff1f;Redis緩存擊穿&#xff1f;Kafka消費堆積&#xff1f;——Java后端常見問題排查實戰 引言 Java后端系統因其豐富的技術棧和復雜的業務邏輯&#xff0c;常常面臨啟動延遲、性能瓶頸、異常錯誤等多種挑戰。從核心語言、Web框架到分布式微服務及緩…

數字人引領政務新風尚:智能設備助力政務服務

在信息技術飛速發展的今天&#xff0c;政府機構不斷探索提升服務效率和改善服務質量的新途徑。實時交互數字人在政務服務中的應用正成為一大亮點&#xff0c;通過將“數字公務員”植入各種橫屏智能設備中&#xff0c;為民眾辦理業務提供全程輔助。這種創新不僅優化了政務大廳的…

ToolsSet之:十六進制及二進制編輯運算工具

ToolsSet是微軟商店中的一款包含數十種實用工具數百種細分功能的工具集合應用&#xff0c;應用基本功能介紹可以查看以下文章&#xff1a; Windows應用ToolsSet介紹https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Number菜單下的Hex Operate工具可以進…

DSP處理數字信號做什么用的?

DSP&#xff08;數字信號處理器&#xff09;的核心任務是高效、實時地處理數字信號&#xff0c;通過專用硬件架構和算法優化&#xff0c;完成對信號的轉換、增強、分析和控制。以下是DSP處理數字信號的主要用途及典型場景&#xff1a; 1. 信號增強與優化 降噪&#xff08;Noise…

電腦如何保養才能用得更久

在這個數字化的時代&#xff0c;電腦已經成為了我們生活和工作中不可或缺的伙伴。無論是處理工作文檔、追劇娛樂&#xff0c;還是進行創意設計&#xff0c;電腦都發揮著至關重要的作用。那么&#xff0c;如何讓我們的電腦“健康長壽”&#xff0c;陪伴我們更久呢&#xff1f;今…

設計模式-監聽者模式

文章目錄 監聽者模式 監聽者模式 監聽器模式指的是事件源經過事件的封裝傳給監聽器&#xff0c;當事件源觸發事件之后&#xff0c;監聽器收到事件的通知并執行事件回調方法。 -監聽者觀察者概念定義當范圍對象的狀態發生變化時&#xff0c;服務器自動調用監聽器對象中的方法來…

小程序33-列表渲染

列表渲染 就是指通過循環遍歷一個數組或對象&#xff0c;將其中的每個元素渲染到頁面上 在組件上使用 wx:for 屬性綁定一個數組或對象&#xff0c;既可使用每一項數據重復渲染當前組件 每一項的變量名默認為item&#xff0c;下標變量名默認為index 在使用 wx:for進行遍歷的時候…

[ Qt ] | QRadioButton和QCheckBox的使用

目錄 QRadioButton 常用屬性 clicked(bool)信號、pressed信號、released信號 小項目 QRadioButton QRadioButton是一個單選按鈕&#xff0c;也是繼承自QAbstractButton(繼承自QWidget) 常用屬性 checkable 是否能選中 checked 是否已經被選中 autoExclusive 是否排…

[網頁五子棋][匹配模式]創建房間類、房間管理器、驗證匹配功能,匹配模式小結

文章目錄 創建房間類創建房間類實現房間管理器 實現匹配器(3)驗證匹配功能問題&#xff1a;匹配按鈕不改變驗證多開 小結 創建房間類 LOL&#xff0c;通過匹配的方式&#xff0c;自動給你加入到一個房間&#xff0c;也可手動創建游戲房間 這一局游戲&#xff0c;進行的“場所…

Apifox 5 月產品更新|數據模型支持查看「引用資源」、調試 AI 接口可實時預覽 Markdown、性能優化

Apifox 新版本上線啦&#xff01; 看看本次版本更新主要涵蓋的重點內容&#xff0c;有沒有你所關注的功能特性&#xff1a; 自動解析 JSON 參數名和參數值調試 AI 接口時&#xff0c;可預覽 Markdown 格式的內容性能優化&#xff1a;新增「實驗性功能」選項 使用獨立進程執行…

Spring MVC 框架

目錄 1.MVC的定義 2.SpringMVC的實際應用 &#xff08;1&#xff09;建立連接 1.RequestMapping注解介紹 2.RequestMapping注解的請求方式 GET請求&#xff1a; POST請求&#xff1a; 指定GET/POST方法類型&#xff1a; &#xff08;2&#xff09;請求 傳遞參數 1.傳…

基于RK3568/RK3588/全志H3/飛騰芯片/音視頻通話程序/語音對講/視頻對講/實時性好/極低延遲

一、前言說明 近期收到幾個需求都是做音視頻通話&#xff0c;很多人會選擇用webrtc的方案&#xff0c;這個當然是個不錯的方案&#xff0c;但是依賴的東西太多&#xff0c;而且相關組件代碼量很大&#xff0c;開發難度大。所以最終選擇自己屬性的方案&#xff0c;那就是推流拉…

AI+爆款文案,提示詞腳本 ——衛朋

目錄 簡介 提示詞 作者簡介 簡介 用好AI的前提是腦子里面要有框架。 AI就像是一個剛出生的小孩&#xff0c;沒有判斷力&#xff0c;瘋狂接收世界上的各類信息。 如果沒有從小的規則框架約束、沒有道德約束&#xff0c;最終的結果就一定是混亂無序的。 AI也是一樣&#x…

芯片:數字時代的算力引擎——鯤鵬、升騰、海光、Intel 全景解析

在大模型爆炸的時代&#xff0c;芯片如同現代文明的“數字心臟”&#xff0c;驅動著從智能手機、數據中心到人工智能和超級計算的每一個關鍵進程。在這場算力競賽中&#xff0c;華為鯤鵬、升騰、海光以及行業巨頭Intel各自扮演著獨特而至關重要的角色。本文將深入解析這些核心算…

傳輸層協議TCP(上)

上一篇https://blog.csdn.net/Small_entreprene/article/details/148143494?fromshareblogdetail&sharetypeblogdetail&sharerId148143494&sharereferPC&sharesourceSmall_entreprene&sharefromfrom_link 上文學習了傳輸層的協議之一UDP&#xff0c;接下來…