Creator 调用OC 视频播放功能

NSString *playString = @“http://192.168.1.110:8888/20160927.mp4”;

NSURL *url = [NSURL URLWithString:playString];
//设置播放的项目
AVPlayerItem *item = [[AVPlayerItem alloc] initWithURL:url];
//初始化player对象
self.player = [[AVPlayer alloc] initWithPlayerItem:item];
//设置播放页面
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:_player];
//设置播放页面的大小
layer.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 300);
layer.backgroundColor = [UIColor cyanColor].CGColor;
//设置播放窗口和当前视图之间的比例显示内容
layer.videoGravity = AVLayerVideoGravityResizeAspect;
//添加播放视图到self.view
[self.view.layer addSublayer:layer];  

在iOS 里面是添加到Controller 上面。但是在Creator 上面我就不知道 这个视图要添加到哪里了。 视频能播放,但是没有显示在页面最前面。这个新创建的视图应该如何添加到引擎的前面?

我现在的一个解决办法是这样的, 可能不好,但是能实现功能。 利用修改rootViewController 来 进行切换游戏和视频播放。

/*
1.创建一个iOS 的单利
UserShare.h 文件
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface UserShare : NSObject

  • (instancetype)shared;
    @property (nonatomic,strong) UIViewController *vcShare; //保存当前的VC

@property (nonatomic,strong) UIViewController *playVideoShare; //保存当前的VC

@end

UserShare.m 文件
#import “UserShare.h”

@implementation UserShare

  • (instancetype)shared {

static UserShare *shared = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// Network activity indicator manager setup
shared = [self new];

});

return shared;
}

@end

  1. AppController 引入文件,初始化单利对象并且为两个单利赋值
    #import “PlayViewController.h”
    //添加属性
    @property (strong, nonatomic) PlayViewController *videoVC;

65 行位置,初始化对象
PlayViewController *videoPlayer = [[PlayViewController alloc] init];

[UserShare shared].vcShare = viewController;

[UserShare shared].playVideoShare = videoPlayer;

3.creator 调用oc 的地方设置

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;

keyWindow.rootViewController = [UserShare shared].playVideoShare;

4.返回的时候keyWindow.rootViewController 在替换成游戏的Controller,重新绘制下界面(PlayViewController 就是控制器里面播放的OC代码)

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;

keyWindow.rootViewController = [UserShare shared].vcShare;

[keyWindow makeKeyAndVisible];//关键语句,显示window

*/

写一个递归的方法,由[UIApplication sharedApplication].keyWindow.rootViewController ,开始往上找。直到找到最上层的VC,把你需要的View add在VC.view上面就可以了。

用cocos的话,使用view,比使用VC的灵活性大。