iOS的QuickTime Plugin
这是个文件夹,里面还有链接库以及文件和图片资源。
UIWebDocumentView会以成员变量struct __CFDictionary *_plugInViews来配对FigPluginView和UIWebPlugInView,其中FigPluginView为key,UIWebPlugInView为value。
UIWebPlugInView有成员变量UIView *_uiView指向FigPluginView,
FigPluginView有成员变量WAKView *_wakView指向UIWebPlugInView。
当然,视频只是PluginView的一种,UIWebPlugInView还会管理别的种类的plugin。
渲染流程中会有这样的关系:
RenderLayerBacking在更新layer树时,从RenderWidget出发通过几层关系得到UIWebPlugInView,调用其函数attachPluginLayer把FigPluginView添加到UIWebDocumentView中。注意这个“添加”是通过好多层CALayer间接实现的,UIWebPlugInView还会创建一个hostLayer作为MediaLayer。调用链的末端实现代码如下:
- (void)_connectPluginLayers
{
WebThreadLock();
if (!_hostingLayer)
{
_hostingLayer = [[CALayer alloc] init];
}
[_webView.layer insertSublayer:_hostingLayer atIndex:];
if ([[_webView webView] _setMediaLayer:_hostingLayer forPluginView:self])
{
self.parentedInLayer = YES;
[_uiView retain];
[_hostingLayer addSublayer:_uiView.layer];
[_uiView release];
[_webView _setSubviewCachesNeedUpdate:YES];
[self _reshapeOnMainThread];
}
} /* 何问起 hovertree.com */
这里只列个大概了,类间网状依赖,好难画图和用文字说明。总之可以更确定,WAKView就是替代了NSView,以求和Mac的WebView共用代码,但iOS application是单进程程序,只能用CALayer树来代替NSView树做组合了。
推荐:http://www.cnblogs.com/roucheng/p/3528371.html
iOS的QuickTime Plugin的更多相关文章
- ionic cordova plugin for ios
源代码结构目录: payplugin: |_src |_android |_PayPlugin.java |_ios |_CDVPayPlugin.h |_CDVPayPlugin.m |_www | ...
- [Cordova] Plugin开发入门
[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...
- Building Plugins for iOS
This page describes Native Code Plugins for the iOS platform. Building an Application with a Native ...
- OSG-3.4.0 简要说明(Readme)
欢迎来到OpenSceneGraph(OSG)世界. Welcome to the OpenSceneGraph (OSG). 对于项目最新信息, 以及如何编译和运行库和示例的更多细节, 可以查看OS ...
- 新MBP使用git命令时启用xcode的终端log
Last login: Mon Oct 22 12:41:33 on consoleuser:~ me$ git Agreeing to the Xcode/iOS license requires ...
- Jenkins常用插件说明(持续更新)
本文主要记录在学习以及使用Jenkins过程中常用的对我们有帮助的插件,同时本文将会持续进行更新.如果大家发现有其他野很好用的插件,也欢迎参照下面的格式,在评论中进行回复反馈. 一.通用插件 1.Em ...
- plugin-barcodescanner 报错
https://github.com/phonegap/phonegap-plugin-barcodescanner/issues/418 ionic cordova platform rm andr ...
- weex安装失败,按照官网步骤多次失败后成功
在安装Weex Toolkit之前,需要确保安装了node, npm. yangfeifei:~ yff$ node -v v6.10.2 yangfeifei:~ yff$ npm -v 3.10. ...
- [CocoaPods]如何使用CocoaPods插件
CocoaPods +插件 CocoaPods是一个由极少数维护者运营的社区项目,需要维护大量的表面区域.可以肯定地说CocoaPods永远不会支持Xcode支持的每个功能,即使这样,团队也必须对许多 ...
随机推荐
- CSDN CODE平台,中国版Github简要使用说明!(多图慎入)
楼主说 以前一直看到别人在用github发布自己的代码,各种牛逼,各种羡慕嫉妒恨.最后终于受不了了,也去注册了一个,注册到没什么难度.然后就没有然后了... 完全看不懂,不知道怎么用. 一次偶然的机会 ...
- TACACS.Net Group 配置
Tacacs作为一个验证工具,其网站上资料较少,只有一些缺省配置,并且没有提到如果在应用中与其自带的Group功能做集成, 这里使用免费的windows 版的TACACS.net 作介绍http:// ...
- webservice4
原理: 参考 http://lvwenwen.iteye.com/blog/1478236 客户端通过get请求可以得到wsdl文件,也就知道服务器提供的方法和参数了,然后客户端会通过webservi ...
- 锋利的JQuery —— DOM操作
图片猛戳链接
- python 数据的拷贝
# -*- config=utf-8 -*- #数据的拷贝 a=[1,2,3,4,5,6,"a","C"]; b=a;# a 与 b 的地址空间相同 a.app ...
- 使用XSD校验Mybatis的SqlMapper配置文件(2)
编写好XSD文件,然后来看怎么使用XSD文件校验,并解析SqlMapper文件,也就是实现doParseSqlMapperResourceWithSchema()方法. 为了实现这个功能,有两个基本要 ...
- C# LINQ需求实现演化
Linq是C#3.0引入的,在C#2.0实现从集合中过滤符合条件的记录实现方式. 假设有一个Book类,以及一个Book类的集合,现在需要从集合中查找出单价大于50的Book. 1.固定查询字段的实现 ...
- struts2 OGNL表达式
一.OGNL OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对 ...
- 深入理解CSS浮动
× 目录 [1]定义 [2]特性 [3]表现 [4]重叠 前面的话 浮动最早的使用是出自<img src="#" align="right">,用于 ...
- 《BI那点儿事》Microsoft 聚类分析算法——三国人物身份划分
什么是聚类分析? 聚类分析属于探索性的数据分析方法.通常,我们利用聚类分析将看似无序的对象进行分组.归类,以达到更好地理解研究对象的目的.聚类结果要求组内对象相似性较高,组间对象相似性较低.在三国数据 ...