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视图。


就可以了~
相似的~webView作为ios原生控件的另一份子,也可以用同样的方式放到cocos的图层下面,以方便在上面加控件。

 

 

 

文章来源:http://www.cocoachina.com/bbs/read.php?tid=290869&page=1&toread=1#tpc&tdsourcetag=s_pcqq_aiomsg

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值