cocos2d或者iOS制作视频+虚列动画做游戏时候,视频播放和结束时顿闪问题解决方案
2012-08-22 18:37
1151 查看
-(id)init
{
//步骤一:初始化
NSString * filePath = [[NSBundle
mainBundle]
pathForResource:movString
ofType:@"mov"];
NSURL * url = [NSURL
fileURLWithPath:filePath];
self.player1 = [[MPMoviePlayerController
alloc] initWithContentURL:url];
//步骤一:注册一个回调消息,来接受视频完成
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
//步骤一:UI控件添加到cocos2d的层之上
[[[CCDirector
sharedDirector] view]
addSubview:_player1.view];
_player1.view.frame = [[CCDirector
sharedDirector] view].bounds;
_player1.controlStyle =
MPMovieControlStyleNone;//设置为无边框模式
[_player1
prepareToPlay];
/////防止启动时的闪屏///////
_player1.view.alpha =
0;
[self
performSelector:@selector(delayPlayMov1)
withObject:nil
afterDelay:0.2];
//背景画面加载,时机要注意
CCSprite * aSprite = [CCSprite
spriteWithFile:bgString];
aSprite.position =
ccp([SingleTonTool
defaultMemory].DeviceWidth/4,[SingleTonTool
defaultMemory].DeviceHeight/4);
[self
addChild:aSprite];
}
//加载好以后显示视频,就不会闪
-(void)delayPlayMov1
{
_player1.view.alpha =
1.0;
}
///回调函数的处理
- (void)moviePlayBackDidFinish:(NSNotification*)notification
{
NSLog(@"moviePlayBackDidFinish: called");
switch (self.movieNum)//播放到第几段视频,做不同处理
{
case 0:
{
// Remove from view
_player1.view.alpha =
0.0;//直接remove会闪屏幕,所以先虚化后再找机会(屏幕比较黑的时候移除)
[_player1
stop];
[self
performSelector:@selector(removeMov1)
withObject:nil
afterDelay:1.0];
}
break;
case 1:
{
;
}
break;
default:
break;
}
self.movieNum++;
}
-(void)removeMov1//延迟执行的视频移除
{
[_player1.view
removeFromSuperview];
[_player1 release];
_player1 = nil;
}
{
//步骤一:初始化
NSString * filePath = [[NSBundle
mainBundle]
pathForResource:movString
ofType:@"mov"];
NSURL * url = [NSURL
fileURLWithPath:filePath];
self.player1 = [[MPMoviePlayerController
alloc] initWithContentURL:url];
//步骤一:注册一个回调消息,来接受视频完成
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
//步骤一:UI控件添加到cocos2d的层之上
[[[CCDirector
sharedDirector] view]
addSubview:_player1.view];
_player1.view.frame = [[CCDirector
sharedDirector] view].bounds;
_player1.controlStyle =
MPMovieControlStyleNone;//设置为无边框模式
[_player1
prepareToPlay];
/////防止启动时的闪屏///////
_player1.view.alpha =
0;
[self
performSelector:@selector(delayPlayMov1)
withObject:nil
afterDelay:0.2];
//背景画面加载,时机要注意
CCSprite * aSprite = [CCSprite
spriteWithFile:bgString];
aSprite.position =
ccp([SingleTonTool
defaultMemory].DeviceWidth/4,[SingleTonTool
defaultMemory].DeviceHeight/4);
[self
addChild:aSprite];
}
//加载好以后显示视频,就不会闪
-(void)delayPlayMov1
{
_player1.view.alpha =
1.0;
}
///回调函数的处理
- (void)moviePlayBackDidFinish:(NSNotification*)notification
{
NSLog(@"moviePlayBackDidFinish: called");
switch (self.movieNum)//播放到第几段视频,做不同处理
{
case 0:
{
// Remove from view
_player1.view.alpha =
0.0;//直接remove会闪屏幕,所以先虚化后再找机会(屏幕比较黑的时候移除)
[_player1
stop];
[self
performSelector:@selector(removeMov1)
withObject:nil
afterDelay:1.0];
}
break;
case 1:
{
;
}
break;
default:
break;
}
self.movieNum++;
}
-(void)removeMov1//延迟执行的视频移除
{
[_player1.view
removeFromSuperview];
[_player1 release];
_player1 = nil;
}
相关文章推荐
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!【2011年12月18日补充】
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!【2011年12月18日补充】
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!更新解决添加组件Cocos2d动画停止播放的BUG】
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!【2011年12月18日补充】
- iOS CAlayer 动画进入后台或者 调用viewWillDisappear viewDidDisappear后动画暂停问题的解决办法
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)及禁止自动锁屏问题!
- 【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d进行视频播放!)
- 移植cocos2d-x 游戏从Android平台到IOS平台分辨率问题及解决办法
- 模拟器播放视频崩溃问题解决方案
- 移植cocos2d-x 游戏从Android平台到IOS平台分辨率问题及解决办法
- 【iOS-Cocos2d游戏开发之十四】音频/音效/视频播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d进行视频播放!)
- iOS下的 Fixed + Input 调用键盘的时候fixed无效问题解决方案
- 解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!
- iOS 10 系统 AVPlayer视频播放不了问题解决
- 【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
- 【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
- 解决video.js 在 IOS播放的时候自动全屏的问题