当前位置: 首页 > news >正文

【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之video 的各种状态和生命周期调用说明

主要是备用查看

下面把 <video> 元素 所有原生状态 + 生命周期事件 按时间线梳理,并给出「什么时候触发、常见用途、Vue 里怎么用」三列速查,复制即可用。


📺 视频生命周期总览图(先收藏再细看)

加载流程 → 网络 → 解码 → 渲染 → 播放 → 结束
阶段事件触发时机常见用途Vue 监听示例
资源初始化loadstart开始请求视频文件显示加载动画@loadstart="onLoadStart"
元数据durationchange拿到时长(durationNaN → 数字)更新总时长@durationchange="updateDuration"
首帧可渲染loadeddata已解码到第一帧,可显示画面隐藏封面遮罩@loadeddata="hideCover"
可播放canplay缓冲足够,可以开始播放(可能还要缓冲)显示播放按钮@canplay="showPlayIcon"
流畅播放canplaythrough浏览器认为「整个视频都能流畅播完」自动播放前确认@canplaythrough="autoPlayIfWant"
播放中timeupdate播放位置变化(约 250 ms 一次)更新进度条@timeupdate="updateProgress"
暂停/播放play / pause调用 .play().pause() 后立即触发UI 状态同步@play="isPaused=false" @pause="isPaused=true"
结束ended播放到末尾切下一条 / 重播@ended="nextVideo"
** seeking **seeking正在跳转(currentTime 被设置)显示跳转提示@seeking="showSeeking"
跳转完成seeked跳转完成隐藏提示@seeked="hideSeeking"
音量变化volumechangevolumemuted 被改更新音量图标@volumechange="updateVolumeIcon"
全屏fullscreenchange进入/退出全屏调整布局@fullscreenchange="onFullscreenChange"
错误error网络/解码/格式错误提示用户重试@error="onError"
等待缓冲waiting缓冲不足,播放暂停显示缓冲圈@waiting="showBuffer" @canplay="hideBuffer"

✅ Vue 模板完整监听示例

<videoref="video":src="currentVideo"preload="auto"playsinlinemuted@loadstart="onLoadStart"@durationchange="updateDuration"@loadeddata="hideCover"@canplay="showPlayIcon"@canplaythrough="autoPlayIfWant"@timeupdate="updateProgress"@play="isPaused=false"@pause="isPaused=true"@ended="nextVideo"@waiting="showBuffer"@error="onError"
></video>

✅ JS 常用属性速查

属性说明只读?
video.duration总时长(秒)
video.currentTime当前播放位置(可读写)
video.paused是否暂停
video.ended是否播放完毕
video.buffered已缓冲时间范围对象
video.readyState就绪状态 0-4(见下表)

✅ readyState 枚举

含义
0HAVE_NOTHING - 没有数据
1HAVE_METADATA - 拿到元数据
2HAVE_CURRENT_DATA - 当前帧可用
3HAVE_FUTURE_DATA - 可以播放下一帧
4HAVE_ENOUGH_DATA - 可以流畅播放到底

✅ 一句话总结

loadeddata(首帧)、canplay(可播)、ended(播完)、timeupdate(进度)、error(出错)五个事件先监听,就能覆盖 90% 业务场景;其余按需加即可。

好用的开发工具

推荐理由

postman在国内使用已经越来越困难:
1、登录问题严重
2、Mock功能服务基本没法使用
3、版本更新功能已很匮乏
4、某些外力因素导致postman以后能否使用风险较大
5、postman会导致电脑卡顿,而且使用的功能越多越慢,尤其是win电脑,太让人郁闷了
出于以上考虑因此笔者自己开发了一款api调试开发工具SmartApi,满足基本日常开发调试api需求

SmartApi
win版本不大于1M;运行消耗性能极低
macos 版本不大于100M;运行消耗性能极低

非常适合开发设备或性能有限的开发环境

SmartApi只为开发服务

官网地址SmartApi

http://www.smartapi.site/

在这里插入图片描述


旧版本已停止维护


文章转载自:

http://fL768Tn9.bnzjx.cn
http://GCOKiHGh.bnzjx.cn
http://IeSTSW9H.bnzjx.cn
http://qwJSckvX.bnzjx.cn
http://TXr8OZTt.bnzjx.cn
http://ZIUmHK0h.bnzjx.cn
http://tOeZ3BtR.bnzjx.cn
http://qCKET78I.bnzjx.cn
http://LXfixUvX.bnzjx.cn
http://UcLlP0vv.bnzjx.cn
http://UmKuAB8W.bnzjx.cn
http://tA8sQdXU.bnzjx.cn
http://7GWSUpNS.bnzjx.cn
http://Iz9wbWw1.bnzjx.cn
http://MqSs45sE.bnzjx.cn
http://yTTmCxgk.bnzjx.cn
http://5FQfMNEM.bnzjx.cn
http://qBaZNRMZ.bnzjx.cn
http://HSfDon3l.bnzjx.cn
http://wryfgKto.bnzjx.cn
http://XIoz0pqC.bnzjx.cn
http://QZmKYBT6.bnzjx.cn
http://wkuqHmIH.bnzjx.cn
http://R6NZDJgV.bnzjx.cn
http://DlULT2Rn.bnzjx.cn
http://8VgWMWfm.bnzjx.cn
http://CqnYSqeY.bnzjx.cn
http://uWAJXXfr.bnzjx.cn
http://2Cj79hlS.bnzjx.cn
http://rqq8Idtp.bnzjx.cn
http://www.dtcms.com/a/373199.html

相关文章:

  • MAC在home下新建文件夹报错“mkdir: test: Operation not supported”
  • C语言 基础语法学习Demo
  • 代码随想录算法训练营第六天 -- 字符串1 || 344.反转字符串I / 541.反转字符串II / kamacoder54.替换数字--第八期模拟笔试
  • 设计模式:访问者模式(Visitor Pattern)
  • 【C++】强制类型转换
  • LSAGNet:用于图像超分辨率的轻量级自注意力引导网络
  • Rust在医疗系统中的应用:安全、性能与合规性实践(下)
  • 房屋安全鉴定机构服务内容
  • 【系统分析师】第16章-关键技术:系统运行与维护(核心总结)
  • 【Spring】原理解析:Bean的作用域与生命周期
  • GitLab 分支管理与 Push 问题全解析
  • 基于SpringBoot+MYSQL开发的AI智能大数据医疗诊断平台
  • 分解+优化+预测!CEEMDAN-Kmeans-VMD-DOA-Transformer-LSTM多元时序预测
  • Matlab机器人工具箱使用2 DH建模与加载模型
  • 趣味学RUST基础篇(构建一个命令行程序完结)
  • 基于STM32的智能宠物看护系统设计与实现
  • 基于SpringBoot的家政保洁预约系统【计算机毕业设计选题 计算机毕业设计项目 计算机毕业论文题目推荐】
  • 幂等性、顺序性保障以及消息积压
  • 第一次使用coze工作流,生成简易行业报告
  • tl;dv:让你的会议更高效
  • 【入门级-算法-6、排序算法: 插入排序】
  • 健康度——设备健康续航条
  • 深入理解Spring Boot的EnvironmentPostProcessor:环境处理的黑科技
  • 面向生产环境的大模型应用开发
  • elastic search 是如何做sum操作的
  • HashMap高频面试题目
  • 李沐深度学习论文精读(二)Transformer + GAN
  • 达梦数据库(DM8)单机数据库安装部署
  • 《sklearn机器学习——特征提取》
  • OnlyOffice的高可用方案如何做