在unity游戏的开头播放视频 , 根据需求 , 最后决定用 MPMoviePlayerController 来实现播放, 实现如下: by Tin

需要在AppController.mm的 OpenEAGL_UnityCallback  修改下view的大小

    UIView *mainView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
// mainView.backgroundColor = [UIColor grayColor]; [MyViewController Instance].view = mainView; [UnityGetGLViewController().view addSubview: [MyViewController Instance].view];

需要在游戏中接收unity的命令

// ========================   播放开头动画  start ========================
// by:xihao
// 2014-05-16 void PlayMovieInIOS( char * path )
{
[[MyViewController Instance] PlayVideo:[NSString stringWithUTF8String:path]]; } void exPlayVideo( char * url )
{
[[MyViewController Instance] PlayVideo:[NSString stringWithUTF8String:url]];
} void exReleaseVideo()
{
[[MyViewController Instance] ReleaseVideo];
} MovieViewController * mv ; -(void) PlayVideo:(NSString *) path
{
if ( mv != nil) {
[mv breakMovie] ;
[mv release];
mv= nil ;
} mv = [[ MovieViewController alloc] init];
[self.view addSubview:mv.view];
[mv playMovie:path];
} -(void) ReleaseVideo
{
if ( mv != nil) {
[mv breakMovie] ;
[mv release];
mv= nil ;
} UnitySendMessage("_IOSDoor","ReleaseVideoOver", "");
} // ======================== 播放开头动画 end ========================

接下来是播放视频

MPMoviePlayerController *movie ;

/**
@method 播放电影
*/
-(void)playMovie:(NSString *)fileName{ NSURL *url = [NSURL fileURLWithPath: fileName ];
//视频播放对象
movie = [[MPMoviePlayerController alloc] initWithContentURL:url];
movie.controlStyle = MPMovieControlStyleNone;
[movie.view setFrame:self.view.bounds];
movie.initialPlaybackTime = -;
[self.view addSubview:movie.view];
// 注册一个播放结束的通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:movie]; [movie play];
} #pragma mark -------------------视频播放结束委托-------------------- -(void) breakMovie
{
if (movie == nil) {
return ;
} //销毁播放通知
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:movie];
[movie.view removeFromSuperview];
// 释放视频对象
[movie release];
movie = nil ;
} /*
@method 当视频播放完毕释放对象
*/
-(void)myMovieFinishedCallback:(NSNotification*)notify
{ NSNumber *reason =
[notify.userInfo
valueForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
if (reason != nil){
NSInteger reasonAsInteger = [reason integerValue];
switch (reasonAsInteger){
case MPMovieFinishReasonPlaybackEnded:{
/* The movie ended normally */
break; }
case MPMovieFinishReasonPlaybackError:{
/* An error happened and the movie ended */
break;
}
case MPMovieFinishReasonUserExited:{
/* The user exited the player */
break;
}
}
NSLog(@"Finish Reason = %ld", (long)reasonAsInteger);
} /* 取消视频自动销毁 由break mv 执行
//视频播放对象
MPMoviePlayerController* theMovie = [notify object];
//销毁播放通知
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:theMovie];
[theMovie.view removeFromSuperview];
// 释放视频对象
[theMovie release];
movie = nil ;
NSLog(@"---------PlayVideoOver 11");
*/ UnitySendMessage("_IOSDoor","PlayVideoOver", "");
NSLog(@"---------PlayVideoOver 22");
}

IOS 播放视频 MPMoviePlayerController的更多相关文章

  1. IOS 播放视频(MPMoviePlayerController、MPMoviePlayerViewController)

    ● iOS提供了叫 做MPMoviePlayerController.MPMoviePlayerViewController的两个 类,可以用来轻松播放视频 ➢ YouTobe就是用MPMoviePl ...

  2. ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)

    ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...

  3. 【转】 iOS播放视频时候,忽略设备静音按钮

    用户有时会在静音模式下观看视频,如果不主动设置的话,视频是没有声音的,通过AVAudioSession可开启以视频为主导的播放模式, 首先需要导入,AVFoundtion.framework,在控制播 ...

  4. iOS播放视频

    1.首先导入 MediaPlayer import MediaPlayer 2.播放事件 class ViewController:UIViewController{ var pc:MPMoviePl ...

  5. 关于MPMoviePlayerController类播放视频时,外放没有声音的问题(ios)

    一.导入音频资源类 #import "AVFoundation/AVAudioSession.h" 二.在播放视频的方法中加一句支持外放的代码 [[AVAudioSession s ...

  6. ios——视频 MPMoviePlayerController的使用(支持本地和网络)

    视频 MPMoviePlayerController 在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地 视频和 ...

  7. 在iOS开发中如何播放视频

     技术博客http://www.cnblogs.com/ChenYilong/  新浪微博http://weibo.com/luohanchenyilong  如何播放视频 •iOS提供了叫做MPMo ...

  8. iOS开发系列- 视频MPMoviePlayerController

    MPMoviePlayerController 在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地视频和网络视频 ...

  9. iOS 全局禁止横屏,但UIWebView 全屏播放视频,横屏,解决办法(任意页面横竖屏或禁止)

    iOS 全局禁止横屏,但UIWebView 全屏播放视频,横屏,解决办法 时间 2015-07-14 20:59:00  博客园-原创精华区 原文  http://www.cnblogs.com/fe ...

随机推荐

  1. 验证码计时 -- UIButton setTitle 闪烁问题解决方案

    首先,有各种版本 方法一: 我运用的一种极其简单的版本:  将UIButton的Type 设成 Custom 就不会有闪烁的问题重现 p.p1 { margin: 0.0px 0.0px 0.0px ...

  2. android studio genymotion插件

    下载andriod studio 2.2 正式版,我的版本带SDK,一直安装, 1.在设置SDK的位置. 2.安装好后在安装虚拟机插件,genymotion去官网下载不带虚拟机的. 下载地址https ...

  3. if和switch的原理

    在C语言中,if和switch是条件分支的重要组成部分.if的功能是计算判断条件的值,根据返回的值的不同来决定跳转到哪个部分.值为真则跳转到if语句块中,否则跳过if语句块.下面来分析一个简单的if实 ...

  4. 分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

    将多次commit合并,只保留一次提交历史. PS:在我练习的时候,将一个文件的代码做了多次修改,而且每次修改都给提交了,这几次改动的目的都一样,比如说修改RADEME.md,但是每次改动的只是一个小 ...

  5. Windows下WordPress搭建博客过程

    搭建环境:Win7 + XAMPP5.5 + wordpress4.5.1 官网下载安装包,解压,拷贝到网站根目录(D:\IT\XAMPP5.5\htdocs\),重命名为blog(随意) 创建数据库 ...

  6. 云锁Linux服务器安全软件安装及防护webshell、CC、XSS跨站攻击设置

    无论我们在使用电脑,还是使用VPS/服务器的时候,最为担心的就是服务器是否有安全问题,尤其是网站服务器再遭受攻击的时候如何得到防护.对于大 部分站长用户来说,我们可能只会使用基础的环境,如果真遇到问题 ...

  7. mvc 目录不存在/Directory does not exist.的解决方案

    今天MVC项目测试出一个问题,当w3wp.exe进程关闭时,第一次运行网站出现 如下错误 目录不存在 Directory does not exist. Parameter name: directo ...

  8. 简单的Android之apk包反编译方法

    网上相关的文章一大堆了,我只是总结下自己的反编译方法和工具 工具下载地址: http://download.csdn.net/detail/zsjangel/7104663 下载上面的三个工具的压缩包 ...

  9. 2-jQuery - AJAX load() 方法【进阶篇】

    第一篇的AJAX load() 方法过于简单,补充一下,完整的. 格式 $(selector).load(URL,data,callback); 源码 <!DOCTYPE html> &l ...

  10. java web应用程序目录

    WEB-INF是用来存储服务端配置文件信息和在服务端运行的类文件的,它下面的东西不允许客户端直接访问的.