• cocos2d-x 3.4版本,videoPlayer和webView上添加sprite等cocos控件


    本帖源于小弟自己在项目过程中为了解决在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视图。


    就可以了~

  • 相关阅读:
    第二十三章 Centos7下Docker安装kibana
    第十七章 Ansibleplaybook模板部署wordpress
    第二十一章 Centos7下Docker自定义配置
    第十八章 AnsibleplaybookRole基础介绍
    第二十二章 Centos7下Docker安装Elasticsearch
    第二十一章 Centos7下Docker安装Nginx
    第二十章 Centos7下Docker安装Tomcat
    第十九章 AnsibleplaybookRole重构wordpress
    第十六章 Ansibleplaybook模板化(Jinja2)
    ABC233
  • 原文地址:https://www.cnblogs.com/dzhs/p/5578226.html
Copyright © 2020-2023  润新知