サンプルプログラムCCVideoPlayerTestを見てみると、
keyWindow上に、
VideoOverlayView
MPMovieView
MPMovieView
EAGLView
という階層でUIViewが乗っかっているようです。
ただし、これはOS4.0以降の場合です。
OS3.1の場合は、
ただし、これはOS4.0以降の場合です。
OS3.1の場合は、
VideoOverlayView
MPSwapableView
MPSwapableView
という階層になります。
頑張ればCCDirectorが乗るEAGLViewを上に持ってきてゴニョゴニョ…で、
cocos2dのスプライトやらが使えそうですが、おとなしくUIKitを使うことにしました。
取りあえず以下のコードでビットマップ画像のオーバレイ表示ができました。
ソースのCCVideoTestLayer.mを改造してみました。
頑張ればCCDirectorが乗るEAGLViewを上に持ってきてゴニョゴニョ…で、
cocos2dのスプライトやらが使えそうですが、おとなしくUIKitを使うことにしました。
取りあえず以下のコードでビットマップ画像のオーバレイ表示ができました。
ソースのCCVideoTestLayer.mを改造してみました。
- (void) test2CCVideoPlayer
{
[CCVideoPlayer playMovieWithFile: @"OP_MEDETAI-NIGHT.m4v"];
// VideoOverlayView上にビットマップ画像をオーバレイさせる
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"toko_back_small01.png"]];
[imageView setCenter:ccp(240, 80)];
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
NSArray *array = [keyWindow subviews];
NSString *str;
id target;
for (target in array)
{
str = NSStringFromClass([target class]);
if ([str isEqualToString:@"VideoOverlayView"])
{
[(UIView *)target addSubview: imageView];
[imageView release];
CGAffineTransform transformRotate = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI/2);
imageView.transform = transformRotate;
break;
}
}
/*
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
img.center = CGPointMake(videoView.center.x, videoView.center.y);
img.alpha = 0.0;
[UIView commitAnimations];
*/
//
}
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。