Я создал глобальную переменную:
MPMoviePlayerController *player;
Я играю видео следующим способом:
- (IBAction) playMovie: (NSString *) videoName ViedeoType: (NSString *) videoType {
ViewVideoSubview.alpha = 0;
NSString *url = [[NSBundle mainBundle]
pathForResource:videoName
ofType:videoType];
player =
[[MPMoviePlayerController alloc]
initWithContentURL:[NSURL fileURLWithPath:url]];
player.shouldAutoplay =YES;
[ViewVideoSubview addSubview:player.view];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
}
и когда воспроизведение видео заканчивается само по себе, вызывается следующий метод get:
- (void) movieFinishedCallback:(NSNotification*) aNotification {
[player.view removeFromSuperview]; //d1
MPMoviePlayerController *playerParam = [aNotification object];
[[NSNotificationCenter defaultCenter]
removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:playerParam];
[player release];
}
Пока все отлично работает. Проблема в том, что у меня есть кнопка, при нажатии которой мне нужно загрузить другой контроллер вида. Я могу загрузить этот контроллер просмотра, но видео по-прежнему воспроизводится в фоновом режиме. Я не понимаю, почему я получаю ошибку при выпуске плеера. Мое временное решение - остановить видео, а затем загрузить другой контроллер представления, чтобы видео не воспроизводилось в фоновом режиме.
Другое решение, о котором я думал, - это воспроизвести видео за 1 секунду до того, как оно закончится, чтобы его выпустили с помощью метода movieFinishedCallback. Я не знаю, как я смогу «перемотать» видео к этому моменту. Я новичок в target-c, и я не знаю, что такое параметр aNotification, иначе я просто вызову этот метод с соответствующим параметром.
Позвольте мне показать вам ошибку, которую я получаю:
![enter image description here](https://i.stack.imgur.com/iWrUk.png)