本帖源于小弟自己在项目过程中为了解决在cocos2d-x中实现ios里videoPlayer自定义控件的需求,所以挖出来大神的一个帖子
http://www.cocoachina.com/bbs/read.php?tid=235430&page=e&#a

不过大神帖子是针对cocos2d-x 3.2的,cocos进化到3.4之后似乎不是很一样了,小弟入行太浅,也不是很懂,所以就自己根据大神的帖子搞了搞,思路和大神是一样滴:
由于目测videoplayer控件是ios原生的uiview控件,跟cocos的绘图方式不是一个级别,所以videoplayer在添加的时候根本就没有添加到cocos的图层里,而是在图层上面新加了一个uiview控件;
解决方法呢,在appController.mm文件里先把_viewController设置成透明:

1
  _viewController.view.backgroundColor = [UIColor clearColor];

然后创建一个新的uiviewcontroller来放置videoplayer的视图和cocos自己的图层,先添加video层,后加cocos层,以便cocos层把video层盖住:

appController.h里:

1
 @property(nonatomic, readonly) UIView* videoView;

appController.mm里:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   _viewController.view.tag = 3;    
   UIViewController* uiVC = [[UIViewController alloc] initWithNibName:nil bundle:nil];
   uiVC.view.frame = [UIScreen mainScreen].bounds;
   _videoView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
   _videoView.tag = 1;           //设置tag以便之后把Video层取出来~
     
   [uiVC.view addSubview:_videoView];
   [uiVC.view addSubview:_viewController.view];
 
// Set RootViewController to window
    if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)
    {
        // warning: addSubView doesn't work on iOS6
        [window addSubview: uiVC.view];
    }
    else
    {
        // use this method on ios6
        [window setRootViewController:uiVC];
    }

接下来就可以打开UIVideoPlayer-ios.mm文件了,找到文件中

1
[eaglview addSubview:self.moviePlayer.view];

这一句,改成

1
[[eaglview.superview viewWithTag:1] addSubview:self.moviePlayer.view];   //在eaglview的父视图里找到tag=1的子视图,也就是实现设置好的Video视图。

就可以了~

cocos2d-x 3.4版本,videoPlayer和webView上添加sprite等cocos控件的更多相关文章

  1. 【HarmonyOS】【Demo】【JAVA UI】 鸿蒙怎么在Webview上添加组件

    在大家HarmonyOS开发中,Webview组件上添加组件可能是很常见的功能了,HarmonyOS的webview和Android的webwiew存在一点点区别,今天来实现这个功能 使用项目布局显示 ...

  2. UWP开发之控件:用WebView做聊天框

    目录 说明 WebView存在的价值 使用WebView的几个重要技巧 使用WebView做的聊天框 说明 大家都知道,无论是之前的Winform.WPF还是现在的IOS.Android开发中,都存在 ...

  3. 通过webview控件访问网页

    初学android开发,在界面编辑器上放了一个webview控件,可惜不知道如何访问控件,在网上看到一段代码记录下来,算是第一次学习笔记. 要想让程序联网需要授权,在AndroidManifest.x ...

  4. PluginOK中间件高级版-支持在Chrome、Edge、Firefox等浏览器网页中真正内嵌ActiveX等控件运行的版本已获多家上市公司采购

    PluginOK(牛插)中间件(原名:本网通WebRunLocal)是一个实现WEB浏览器(Web Browser)与本地程序(Local Application)之间进行双向调用的低成本.强兼容.安 ...

  5. DevExpress控件与VS和.NET各个版本的支持情况

    如下图所示,绿色Yes代表支持,红色No代表不支持.对于有些人觉得装了dev后,vs工具箱没有,一般都是以下两大问题: 1.要么你的Dev的版本不支持你当前的VS版本,没有很正常. 2.要么你的项目的 ...

  6. xcode7中使用cocos2d-x3.8的webview控件

    在XCode7中使用cocos2d-x 3.3以上版本的WebView控件时,碰到了编译错误 App Transport Security has blocked a cleartext HTTP ( ...

  7. WebView 上传文件 WebChromeClient之openFileChooser函数

    原链接:http://blog.saymagic.cn/2015/11/08/webview-upload.html?utm_source=tuicool&utm_medium=referra ...

  8. 【WP开发】WebView控件应用要点

    WebView控件我就不多作详细的介绍,相信大家都懂的,就算你没用过,你看他的名字和长相都知道它的用途了.就是用来显示HTML内容的. 在WP 8.1的Runtime App中,这个控件大致有以下几个 ...

  9. WebView上实现Java与JavaScript交互

    在安卓开发上,考虑到开发效率和界面更新,有时使用WebView结合web页面技术,可以快速迭代地开发移动应用.WebView加载资源的速度并不慢,但是如果资源多了,就很慢.图片.css.js.html ...

随机推荐

  1. sed 小结

    语法格式1: sed option command file 注意区分 option command, option 以-开始 command 以单?引号包围 ———— 这完全是误会, 我测试好多后发 ...

  2. UI5-文档-4.28-Unit Test with QUnit

    现在我们在应用程序中有了一个测试文件夹,我们可以开始增加我们的测试覆盖率. 实际上,到目前为止我们添加到应用程序中的每个特性都需要单独的测试用例.到目前为止,我们完全忽略了这一点,所以让我们为步骤23 ...

  3. 不影响Inspector布局拓展类

    DecoratorEditor.cs using System.Collections.Generic; using System.Linq; using System.Reflection; usi ...

  4. Scala语言学习笔记(3)

    类 // 定义并使用类 class User val user1 = new User // 主体构造器(primary constructor) class Point(var x: Int, va ...

  5. Haskell语言学习笔记(40)Arrow(1)

    Arrow class Category a => Arrow a where arr :: (b -> c) -> a b c first :: a b c -> a (b, ...

  6. OpenCv 人脸识别 基础

    #include <opencv2\opencv.hpp> #include <iostream> using namespace std; int main() { // 摄 ...

  7. homework 补第三题

    上次只写了两道题 发现少了一道 所以今天补上    4 . 另外补上今天的程序代码 代码 1. 2. 3 4 运行截图 1. 2 3

  8. spring ioc 注解配置

    要注意spring 版本与jdk的兼容性 applicationContext-resource.xml: <beans xmlns="http://www.springframewo ...

  9. eclipse JAVA反编译

    前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面 ...

  10. ThreadPoolExecutor的execute源码分析

    上一篇文章指出,ThreadPoolExecutor执行的步骤如下: 向线程池中添加任务,当任务数量少于corePoolSize时,会自动创建thead来处理这些任务: 当添加任务数大于corePoo ...