Прошло много времени с тех пор, как этот вопрос был опубликован, но ответ таков: вы должны хранить ссылку на переменную MPMoviePlayerController
.
Если у вас есть код part1 в функции, объявитеMPMoviePlayerController *player
в вашем .h файле.Если вы этого не сделаете (и вы разрабатываете с ARC
), ваша переменная игрока будет освобождена, как только вы выйдете из функции.Обратите внимание, что вы добавляете player.view
к self.view
, поэтому вид игрока сохраняется, а контроллер игрока - нет, и он освобождается.
Таким образом, вы должны иметь в своем файле .h:
MPMoviePlayerController *player;
и в этом случае ваша функция должна выглядеть примерно так:
-(void) playMovie
{
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"mymovie"
ofType:@"mov"]];
player = [[MPMoviePlayerController alloc] initWithContentURL: url];
[player.view setFrame: self.view.bounds];
[self.view addSubview: player.view];
[player play];
}