2012-04-05 2 views
0
#import "ViewController.h" 

@implementation ViewController 
@synthesize scrollView; 

- (void)viewDidLoad 
{ 
    [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 

    [self.view addSubview:scrollView]; 
    scrollView.contentSize = CGSizeMake(4096, 768); 


    NSString *url = [[NSBundle mainBundle] pathForResource:@"F0" ofType:@"mov"]; 

    player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(movieFinishedCallback) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:player]; 
    player.view.frame = CGRectMake(0, 0, 1024, 768); 
    player.scalingMode = MPMovieScalingModeAspectFill; 
    [scrollView addSubview:player.view]; 
    [player play]; 

    UIImageView *image1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"29-30-p1.jpg"]]; 
    image1.frame = CGRectMake(1024,0,1024,768); 
    image1.clipsToBounds = YES; 
    [scrollView addSubview:image1]; 
    image1.animationImages = eyeFrames; 
    image1.animationDuration = 0.25; 
    image1.animationRepeatCount = 1; 

    UIImageView *image2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"29-30-p2.jpg"]]; 
    image2.frame = CGRectMake(2048,0,1024,768); 
    image2.clipsToBounds = YES; 
    [scrollView addSubview:image2]; 

    UIImageView *image3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"29-30-p3.jpg"]]; 
    image3.frame = CGRectMake(3072,0,1024,768); 
    image3.clipsToBounds = YES; 
    [scrollView addSubview:image3]; 


    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

- (void) movieFinishedCallback:(NSNotification *) aNotification{ 
    MPMoviePlayerController *moviePlayer = [aNotification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:moviePlayer]; 
    [moviePlayer.view removeFromSuperview]; 
    [player release]; 

} 

-(void)viewWillDisappear:(BOOL)animated{ 

    //NSLog(@"x=%f",scrollView.contentOffset.x); 
    [player stop]; 

} 

-(void)viewWillAppear:(BOOL)animated{ 
    [player play]; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

@end 

Ребята, я понятия не имею, почему viewWillDisappear и viewWillAppear цикл не работает. Я хочу остановить видео, если я прокручу и продолжаю играть, когда я прокручу назад. Дайте мне знать, почему он не работает. Кстати, я не знаю, почему программа заканчивается, когда видео завершено. Я использовал тот же код в предыдущем проекте и не обнаружил ошибки. Я немного запутался. Надежда some1 может мне помочь. Заранее спасибо.Как остановить/воспроизведения видео

ответ

1

U дал scrollView.contentSize = CGSizeMake(4096, 768); Это означает, что вид не будет исчезать или появляться, когда и прокрутки.Торы прокрутки позиции мудры исчезают или appear.Actually прокрутки на view.So U нужно manupulate видео остановки и играть, когда и прокрутки. Итак, u дайте рамку для player, и когда позиция перемещения прокрутки появится в позиции игрока, тогда воспроизведите ее. Затем, когда пересекает рамку игрока, остановите ее. Этот код воспроизведения и остановки в методе scrollViewDidScroll с условием else.