MPMoviePlayerController: Как я могу сделать мой цикл видео? - PullRequest
12 голосов
/ 03 января 2011

Заранее спасибо за любую помощь, я новичок и был бы признателен за любую помощь здесь .. У меня есть этот код для воспроизведения фильма, и он прекрасно работает. Может кто-нибудь, ПОЖАЛУЙСТА, скажите мне, как сделать этот цикл цикла и воспроизвести его с начала без остановки (любой код поможет) Также я хотел бы знать, как играть 2 фильма, один за другим, желательно с плавным или плавным переходом. Спасибо за любую помощь

#import "MyAppViewController.h"

@implementation MyAppViewController

-(IBAction)button:(id)sender{
 NSString *path = [[NSBundle mainBundle]
       pathForResource:@"mymovie" ofType:@"mp4"];

 player = [[MPMoviePlayerViewController alloc]
     initWithContentURL:[NSURL fileURLWithPath:path]];

 [self presentMoviePlayerViewControllerAnimated:player];

}

Ответы [ 3 ]

23 голосов
/ 03 января 2011

Установите для свойства repeatMode вашего MPMoviePlayerController значение MPMovieRepeatModeOne

player = [[MPMoviePlayerViewController alloc]
          initWithContentURL:[NSURL fileURLWithPath:path]];
player.moviePlayer.repeatMode = MPMovieRepeatModeOne;
20 голосов
/ 30 июля 2012

MPMovieRepeatModeOne это хорошо, но это не очень плавно зацикливает видео.Попробуйте это ниже (скопировано из другого поста):

(я только что получил это на моем iPad 3 под iOS 5.1.1, базовый SDK iOS 5.1.)

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

[[NSNotificationCenter defaultCenter] addObserver:self
            selector:@selector(moviePlayerDidFinish:)
            name:MPMoviePlayerPlaybackDidFinishNotification
                            object:self.moviePlayer];

Затем настройте селектор для фильтрации после завершения воспроизведения фильма:

- (void)moviePlayerDidFinish:(NSNotification *)note
{
    if (note.object == self.moviePlayer) {
        NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
        if (reason == MPMovieFinishReasonPlaybackEnded)
        {
            [self.moviePlayer play];
        }
    }
}
1 голос
/ 25 января 2011

Для таймера вы можете создать переменную Int, которая имеет значение вашего ползунка, а затем использовать executeSelector afterDelay:

int delayInt = 8; // Substitute the 8 for the value of your slider
[self performSelector:@selector(myMethod) withObject:nil afterDelay:delayInt];

А затем в вашем «myMethod»

-(void) myMethod{
//the code to stop your player and remove view controller
}
...