开发者

-[UIWindow addEventMonitor:] crash on Iphone 3.1.3

开发者 https://www.devze.com 2023-01-15 01:38 出处:网络
This is the crash I am gettin gwhile playing a video on 3.1.3. It works fine on 4.0. *** Terminating app due to uncaught exception \'NSInvalidArgum开发者_开发问答entException\', reason: \'*** -[UIWin

This is the crash I am gettin gwhile playing a video on 3.1.3. It works fine on 4.0.

*** Terminating app due to uncaught exception 'NSInvalidArgum开发者_开发问答entException', reason: '*** -[UIWindow addEventMonitor:]: unrecognized selector sent to instance 0x127500'

any answers would be ver helpful. Thanks,


playing videos is handled differently between os 3.0+ and os 4.0+, also for what reason are you using addEventMonitor?

Here's how I do it:

-(void)playStoryMovie {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"campaign1" ofType:@"mp4"]];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
// Register to receive a notification when the movie has finished playing.
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:moviePlayer];

if ([moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]) {
    // Use the new 3.2 style API
    moviePlayer.controlStyle = MPMovieControlStyleNone;
    moviePlayer.shouldAutoplay = YES;
    // This does blows up in cocos2d, so we'll resize manually
    // [moviePlayer setFullscreen:YES animated:YES];
    [moviePlayer.view setTransform:CGAffineTransformMakeRotation((float)M_PI_2)];
    CGSize winSize = [[CCDirector sharedDirector] winSize];
    moviePlayer.view.frame = CGRectMake(0, 0, winSize.height, winSize.width);   // width and height are swapped after rotation
    [[[CCDirector sharedDirector] openGLView] addSubview:moviePlayer.view];
} else {
    // Use the old 2.0 style API, YES APPLE WE KNOW ITS DEPRECATED BUT THIS IS FOR THE OLD DEVICES.
    moviePlayer.movieControlMode = MPMovieControlModeHidden;
    [moviePlayer play];
}   


}

- (void)moviePlayBackDidFinish:(NSNotification*)notification {
    MPMoviePlayerController *moviePlayer = [notification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:moviePlayer];

    // If the moviePlayer.view was added to the openGL view, it needs to be removed
    if ([moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]) {
        [moviePlayer.view removeFromSuperview];
    }

    [moviePlayer release];  
}
0

精彩评论

暂无评论...
验证码 换一张
取 消