MPMoviePlayerController продолжает играть после выгрузки просмотра? - PullRequest
1 голос
/ 12 сентября 2011

У меня есть подробный вид, и когда viewdidload в detailviewcontroller, MPMoviePlayerController распределяет и воспроизводит аудио, но даже если я перехожу на главную таблицу, звук по-прежнему воспроизводится.

Как мне остановить MPMovieplayercontroller, когда я вернусь к главной таблице?Это мой код MPMoviePlayerController:

.h

MPMoviePlayerController *player;

.m

- (void)viewDidLoad
{
[super viewDidLoad];
//Get the Movie
NSURL *movieURL = [NSURL URLWithString:@"some link"];
player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

//Place it in subview, else it won’t work
player.view.frame = CGRectMake(20, 20, 280, 25);
player.backgroundView.backgroundColor = [UIColor clearColor];
[self.view addSubview:player.view];

// Play the movie.
[player play];

}

Я даже добавил следующий код в метод viewdidunload, но не работал.

- (void)viewDidUnload {

[player stop];
player.initialPlaybackTime = -1;
[player release];

// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

Что вы, ребята, предлагаете?

Заранее спасибо,

Ответы [ 2 ]

1 голос
/ 01 декабря 2012

Мне больше понравился пользовательский интерфейс viewDidDisappear, чем viewWillDisappear.Анимация начинается, и фильм останавливается после - аудио звучит лучше для меня таким образом.

-(void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [_moviePlayer stop];
}
0 голосов
/ 19 декабря 2012

У меня похожая проблема.Я не могу использовать «viewDidDisappear» или «viewWillDisappear», потому что у меня есть представление типа «config», которое можно открыть во время воспроизведения содержимого, и оно вызовет эти два метода.

РЕДАКТИРОВАТЬ: Обнаружено, что viewDidUnloadи viewWillUnload больше не вызывают (я в настоящее время на устройстве iOS 6+) ...

Из документации:

Доступность: iOS (3.0 и более поздние версии)Устаревший: представления больше не очищаются в условиях нехватки памяти, и поэтому этот метод никогда не вызывается.

Я только что создал простую функцию с именем unload, и внутри функции установил все нужные мне объекты =ноль (я использую ARC).В то время, когда я выполняю вызов для удаления представления, я также вызываю функцию unload.Надеюсь, это кому-нибудь поможет.

...