2013-05-28 3 views
0

Я хочу воспроизвести файл .mov один раз, а затем прямо после воспроизведения второго файла .mov, который находится на повторе. Ive пытался использовать соны и таймеры, а также проигрыватель AVqueue, и я просто не могу заставить кого-нибудь из них работать. Есть ли способ воспроизвести видео за другим с помощью режима воспроизведения или продолжительности?Последовательные фильмы с MPMoviePlayerController

Я использую MPMoviePlayer сделать оба из них, как не следует (ничего сложного) ..

NSString *stringPath1 = [[NSBundle mainBundle] pathForResource:@"Movie1" ofType:@"mov"]; 
    NSURL *url1= [NSURL fileURLWithPath:stringPath1]; 
    mpc = [[MPMoviePlayerController alloc] initWithContentURL:url1]; 
    [mpc setMovieSourceType:MPMovieSourceTypeFile]; 

    mpc.controlStyle = MPMovieControlStyleNone; 
    mpc.view.frame = CGRectMake(-200, 100, 1152, 600); 

    mpc.repeatMode = MPMovieRepeatModeNone; 

    [self.view addSubview:mpc.view]; 
    [mpc play]; 


    NSString *stringPath2 = [[NSBundle mainBundle] pathForResource:@"Movie2" ofType:@"mov"]; 
    NSURL *url2= [NSURL fileURLWithPath:stringPath2]; 
    mpc2 = [[MPMoviePlayerController alloc] initWithContentURL:url2]; 
    [mpc2 setMovieSourceType:MPMovieSourceTypeFile]; 

    mpc.controlStyle = MPMovieControlStyleNone; 
    mpc.view.frame = CGRectMake(-200, 100, 1152, 600); 

    mpc.repeatMode = MPMovieRepeatModeOne; 

    [self.view addSubview:mpc.view]; 
    [mpc play]; 

Что я могу поставить между этими битами кода, так что второй фильм загружает только после того, как первый один играл?

Спасибо.

ответ

0

Вы должны попробовать MPMoviePlayerPlaybackStateDidChangeNotification зарегистрируйтесь для получения уведомления, затем добавьте наблюдателя и как только вы получите уведомление, вы можете играть в следующий фильм.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil]; 
+0

Спасибо. Я просто получаю ошибку SIGABRT, когда я пытаюсь это сделать, любая идея, почему? –

+0

Удостоверьтесь, что первый MPMoviePlayer полностью освобожден, прежде чем пытаться выделить второй –

+0

Хорошо, нет SIGABRT, но второй фильм по-прежнему остается единственным, что играет –