Я передаю видео на iPhone, и мне не нравится, как MPMoviePlayerController обрабатывает вещи с самого начала. Я заметил, что когда вы нажимаете на строку, чтобы выбрать определенный фильм, приложение просто сидит там, пока оно не будет загружено достаточно для его воспроизведения. Поэтому я открыл UIImageView с загрузочным изображением и хорошим блесном, чтобы держать пользователя в курсе.
Я думаю, у них должна быть возможность отменить воспроизведение фильма, если они устали ждать. Итак, у меня есть кнопка отмены с фоновым изображением.
UIButton *cancel;
UIImage *cancelImage = [UIImage imageNamed:@"cancel.png"];
cancel = [UIButton buttonWithType:UIButtonTypeCustom];
cancel.frame = CGRectMake(0,0, cancelImage.size.width, cancelImage.size.height);
cancel.center = CGPointMake(35, 20);
[cancel setImage:cancelImage forState:UIControlStateNormal];
[cancel addTarget:self action:@selector(cancelMovie) forControlEvents:UIControlEventTouchUpInside];
[moviePreviewView addSubview:cancel];
Но я не уверен, что добавить в метод cancelMovie. Я попытался продублировать то, что у меня есть в методе обратного вызова moviePlayBackDidFinish, но он довольно эффектно падает.
Я тоже пробовал:
-(void)cancelMovie {
[theMovie.view removeFromSuperview];
[theMovie release];
}
Но и это ничего хорошего не дает. Я думал, что мог бы вызвать moviePlayBackDidFinish напрямую, но я не думаю, что вы можете вызвать метод уведомления напрямую.
Ваши мысли?