HTMLDocumentParser.cpp 解析HTML源文件遇到video标签时,
会调用自动生成的HTMLElementFactory中的方法createHTMLElement()
这个方法根据tag name 在ConstructorFunctionMap中找到videoConstructor。
并调用HTMLElementFactory::videoContructor.
videoContructor中调用了HTMLVideoElement::create.
由于HTMLVideoElement继承自HTMLMediaElement,create()在调用HTMLVideoElement的构造函数时,同时调用
HTMLMediaElement。video 标签播放的主要流程在HTMLMediaElement中。
HTMLMediaElement.cpp这个类是webkit 用以表示video标签的类HTMLVideoElement的基类。
MediaControlElement.cpp这个类是webkit 自带的控件类。
MediaControlRootElement.cpp这个类是webkit自带的控件类的父类,即所有的控件类都是这个类的child.
由于android4.0.1中全屏播放时使用的是android的控件类,所以我们不考虑webkit自带的控件类。
先说明这些类之间的关系。
HTMLMediaElement除了继承自HTMLElement外,还继承了MediaPlayerClient,这个类定义了一些回调接口,这些接口提供给WebCore::MediaPl
会调用自动生成的HTMLElementFactory中的方法createHTMLElement()
这个方法根据tag name 在ConstructorFunctionMap中找到videoConstructor。
并调用HTMLElementFactory::videoContructor.
videoContructor中调用了HTMLVideoElement::create.
由于HTMLVideoElement继承自HTMLMediaElement,create()在调用HTMLVideoElement的构造函数时,同时调用
HTMLMediaElement。video 标签播放的主要流程在HTMLMediaElement中。
HTMLMediaElement.cpp这个类是webkit 用以表示video标签的类HTMLVideoElement的基类。
MediaControlElement.cpp这个类是webkit 自带的控件类。
MediaControlRootElement.cpp这个类是webkit自带的控件类的父类,即所有的控件类都是这个类的child.
由于android4.0.1中全屏播放时使用的是android的控件类,所以我们不考虑webkit自带的控件类。
以下是android4.0.1的video 标签播放涉及到的主要类的类图。
先说明这些类之间的关系。
HTMLMediaElement除了继承自HTMLElement外,还继承了MediaPlayerClient,这个类定义了一些回调接口,这些接口提供给WebCore::MediaPl

本文分析了在Android 4.0.1系统中,使用WebKit浏览器内核的video标签播放视频的过程。通过类图和顺序图,详细阐述了HTMLMediaElement如何与WebCore::MediaPlayer、MediaPlayerPrivate以及Android::HTML5VideoViewProxy等组件相互作用,建立起播放关联。重点关注了这些组件间的交互关系。
2064

被折叠的 条评论
为什么被折叠?



