本文共 1821 字,大约阅读时间需要 6 分钟。
## HTML5 MediaPlayer的源码分析零散总结
HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document* document, bool createdByParser): HTMLElement(tagName, document), ActiveDOMObject(document) //均有当前激活DOM对象#tagName:标签的名称#HTMLElement均要指定Document父类,最终创建的DOM的存储形式#createdByParser:js发起创建?还是html发起创建?{ document->registerForMediaVolumeCallbacks(this); document->registerForPrivateBrowsingStateChangedCallbacks(this); //以上htmlMediaElement关心和监听document对象中的两个事件}## 注册回调函数采用监听者的模式void Document::mediaVolumeDidChange(){ HashSet::iterator end = m_mediaVolumeCallbackElements.end(); for (HashSet ::iterator i = m_mediaVolumeCallbackElements.begin(); i != end; ++i) (*i)->mediaVolumeDidChange();}void Document::registerForMediaVolumeCallbacks(Element* e){ m_mediaVolumeCallbackElements.add(e);}void Document::unregisterForMediaVolumeCallbacks(Element* e){ m_mediaVolumeCallbackElements.remove(e);}##
转载地址:http://dcvbi.baihongyu.com/