Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析

Safari中的视频相关操作封装在QuickTime Plugin里面,存放于/Library/Internet Plugin目录下。
 
下图是相关类的class diagram:

Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析_第1张图片

其中的QuickTime Plugin是通过已淘汰的Apple之前定义的Webkit Plugin协议来实现的,而不是现在支持的Netscape API的机制。
可以参考以下文档:
        Introduction to WebKit Plugin Programming Topic   
        WebPlugin Protocol Reference
        WebScripting Protocol Reference
 
Safari/WebKit 的源代码里仍然有对WebKit Plugin 的支持, 也就是为了视频的插件。

另外Safari并不是通过HTMLMediaElement::platformLayer()提供的CALayer,而是通过Widget::platformWidget()来返回CALayer的。


 
以下是几张时序图帮助理解交互过程:
 
创建过程:
Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析_第2张图片



点击play按钮的操作序列:

Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析_第3张图片


释放的时序图:

Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析_第4张图片


下面是FigPluginView的类图,方便理解它内部的实现:

Webkit中HTML5 Video的实现分析(六) - Safari视频机制分析_第5张图片

*最新UML图可以到GitHub中下载。

上一篇:  Webkit中HTML5 Video的实现分析(五) - WebKit中视频事件的传递


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


你可能感兴趣的:(html5,video,webkit,Safari)