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:0]; 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相关推荐
- iOS 各版本中的新特性(What's New in iOS)- 目录翻译完成
iOS 各版本中的新特性(What's New in iOS) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...
- Flutter入门:application、module、package、plugin
我们用AS创建flutter项目时,会看到几个选项:application.module.package.plugin. application 就是一个新flutter app,这个没什么可说的 m ...
- web dialog 内嵌 图片_Unity游戏如何在iOS上调用Facebook原生对话框分享图片
原文发表于Unity中国论坛 ,如果对你有帮助请关注我! Unity游戏如何在iOS上调用Facebook原生对话框分享图片 - Unityunity.cn 手头上的一个游戏项目需要实现截屏并分享到 ...
- 持续集成之jenkins基础
Jenkins基本概念 - 基于JAVA开源的自动化系统平台 - 在servlet容器中运行,如apache tomcat - 提供CI,CD任务及流水线的服务 - 所有类型的任务:构建.测试.部署等 ...
- 揭密微信《跳一跳》小游戏那些外挂
张小龙:这个游戏发布以后,其实它的效果有点超出我们的预期,我们自己开玩笑说,这个游戏突然变成了有史以来可能用户规模最大的一个游戏,因为它的DAU大概到了1点几亿,但同时出现了很多外挂,我没有想到这么小 ...
- 你知道这个C#开发跨平台APP的样例介绍开源项目吗?
站长英文太差就不翻译了,大家看效果图,都是使用Xamarin.Forms开发的开源移动App介绍,感兴趣的可以访问Github和Gitee仓库看看,下载对应的App项目研究. Github:https ...
- Akamai阿卡迈_abck逆向sensor_data(一)
Akamai阿卡迈:常用于国外网站,2019年初期版本验证cookies中的_abck,后期增加ak_bmsc等其他指纹设备. 常见网站: 韩国大韩航空:https://www.koreanair.c ...
- 苹果iPhone手机内文件目录大全
最全最详细!苹果iPhone手机内文件目录大全! 应该是现今国内最全的iPhone手机目录-众所周之,iPhone采用的是MAC OS系统,所以如果了解了内部文件结构,也就意味着可以很容易更改一些设置 ...
- 友盟php接入统计,ionic2 接入友盟统计
SDK下载 ionic2是基于cordova来实现移动app开发的,因此我们需要先下载友盟的cordova sdk:http://dev.umeng.com/analytic... Android配置 ...
- iphone竖屏视频旋转_如何在iPhone上旋转视频
iphone竖屏视频旋转 We all know that feeling: you record a video on your iPhone in portrait mode, and then ...
最新文章
- 最大流 ---- 最大不相交路径数 ---- P2766 最长不下降子序列问题(网络流24题)
- linux shell ddos木马,利用Shell 脚本解决DDOS攻击问题
- Python爬虫(九)_案例:使用正则表达式的爬虫
- leetcode_486. Predict the Winner
- python逐行读取excel_python对execl 处理操作代码
- Java-线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- 怎么打钩_如何在excel中打钩
- new运算符与malloc函数区别
- yum 安装、 rpm安装、 源码编译安装
- 流氓软件卸载神器geek
- Windows10 查看电脑关机时间(提交忘记打卡申请必备)
- oracle报错ora-01033解决办法
- linux25g网卡设定,工程师笔记|刷新Mellnaox 25G网卡固件的方法,你get了吗
- T293037 [传智杯 #5 练习赛] 白色旅人
- python随机函数random、画、星轨_如何使用 NVIDIA StyleGAN 生成自己的动漫(老婆)头像...
- python爬虫导入自己事先定义好的配置文件,在服务器运行出现ImportError: No module named 'a005_BanGuMi_spider_subject' 错误
- JAVA资深架构师成长路线
- 1、Basic4android简介
- appendChild()方法
- 使用Scrapy爬取豆瓣电影排行榜
热门文章
- mysql数据库下载和创建
- 判断点在多边形内部的方法(Java版)
- VS2010中的单元测试【转载】
- struts2整合spring3整合成功但是spring无法注入
- lax文件的编码问题
- Silverlight 与 WPF 的一些差异
- the JAR file spring-beans-4.0.0.RELEASE.jar has no source attachment
- ubantu中让g++支持c++11的办法
- bzoj 5297 [Cqoi2018]社交网络 高斯消元+Matrix-Tree定理
- c# 全局钩子实现扫码枪获取信息。