Webkit中HTML5 Video的实现分析 (三) - MediaPlayer & MediaPlayerPrivate的生命周期

简介: 明确主要类的生命周期有助于更好理解Webkit中视频的工作流程。下图展示了类间的引用关系。 如HTMLVideoElement与一个MediaPlayer对应,MediaPlayer与MediaPlayerPrivate一一对应,它们都是一个组合关系,当所有者自身被析构时,会自动释放引用的实例。

明确主要类的生命周期有助于更好理解Webkit中视频的工作流程。下图展示了类间的引用关系。

如HTMLVideoElement与一个MediaPlayer对应,MediaPlayer与MediaPlayerPrivate一一对应,它们都是一个组合关系,当所有者自身被析构时,会自动释放引用的实例。这个过程都是使用OwnPtr智能指针来实现的。

  OwnPtr赋值操作的代码:

       OwnPtr& operator=(std::nullptr_t) { clear(); return *this; }

 

下面是HTMLMediaElement (HTMLVideoElement)中维护MediaPlayer的主要状态 (只关注于创建与释放过程):

当每次因为src属性变化或新增节点等情况,最终会呼叫createMediaPlayer释放原先的实例,再重新创建一个新的MediaPlayer实例。

 

最后是MediaPlayer维护MediaPlayerPrivate(m_private)的状态图。同上图一相似。

 

上一篇:Webkit中HTML5 Video的实现分析 (二) - MediaPlayerFactory & RenderVideo的绘制操作

下一篇:Webkit中HTML5 Video的实现分析 (四) - 视频加载及播放的时序图

转载请注明出处:http://blog.csdn.net/horkychen

 

目录
相关文章
|
9月前
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
239 0
|
19天前
|
前端开发 搜索推荐 UED
HTML表单提交的几种常用方式及其优缺点分析
HTML表单提交的几种常用方式及其优缺点分析
|
2月前
|
移动开发 JavaScript 前端开发
APP的HTML5页面经过运营商网络被植入手机管家问题及分析,解决方案见新文章
APP的HTML5页面经过运营商网络被植入手机管家问题及分析,解决方案见新文章
30 0
|
2月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
|
8月前
uniapp使用weiview引入本地Html5+ video 基于mui 5+的 视频播放器
uniapp使用weiview引入本地Html5+ video 基于mui 5+的 视频播放器
|
移动开发 前端开发 JavaScript
前端祖传三件套HTML的HTML5之新多媒体元素 audio/video
HTML5 是 Web 技术的重要更新,它引入了许多新特性,其中包括一些新的多媒体元素。这些新元素包括音频和视频,让 Web 开发者可以更方便地在网站上添加多媒体内容。
131 0
|
移动开发 HTML5 内存技术
零基础HTML入门教程(13)——插入视频video标签
我们前几小结学习了,插入图片插入音频等,我们这一小结学习一下,插入视频标签video并熟练使用。(1)直到现在,仍然不存在一项旨在网页上显示视频的标准。 今天,大多数视频是通过插件(比如 Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。 HTML5 规定了一种通过 video 元素来包含视频的标准方法。 (2)controls 属性供添加播放、暂停和音量控件。 包含宽度和高度属性也是不错的主意。 代码如下 效果如下 我们可以看到,页面上面会出现一个可以播放的视频,我们再一些网站上看到视频,都是用
零基础HTML入门教程(13)——插入视频video标签
|
移动开发 前端开发 JavaScript
HTML5的生命周期是什么?底层原理是什么?
HTML5的生命周期是什么?底层原理是什么?
171 0
|
前端开发 JavaScript 索引
重学前端 35 # HTML标准分析
重学前端 35 # HTML标准分析
107 0
|
移动开发 Java HTML5
HTML5 学习9.页面结构分析
HTML5 学习9.页面结构分析