MPMoviePlayerController: Как я могу создать свой цикл видео?
Заранее благодарю за любую помощь, я новичок и буду признателен за любую помощь здесь.
У меня есть этот код, чтобы играть в фильм, и он отлично работает. Может кто-нибудь ПОЖАЛУЙСТА, расскажите мне, как сделать этот цикл фильма и воспроизвести с самого начала без остановки (любой код поможет). Также я хотел бы знать, как играть 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];
}
Ответы
Ответ 1
Установите свойство repeatMode
вашего MPMoviePlayerController
в MPMovieRepeatModeOne
player = [[MPMoviePlayerViewController alloc]
initWithContentURL:[NSURL fileURLWithPath:path]];
player.moviePlayer.repeatMode = MPMovieRepeatModeOne;
Ответ 2
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];
}
}
}
Ответ 3
Для таймера вы можете создать переменную Int, которая имеет значение вашего слайдера, а затем использовать функцию performSelector 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
}