Я внедряю видео в приложение для iPad, и оно отлично работает.Но проблема, с которой я сталкиваюсь, заключается в том, что, когда я покидаю вид, чтобы перемещаться куда-то еще, видео аудио продолжает воспроизводиться в фоновом режиме.Есть ли способ полностью остановить видео и удалить его из представления перед закрытием представления?
Я пытался:
[moviePlayerController stop];- Но это, похоже, не останавливает фильм, а просто вылетает из приложения.
[moviePlayerController.view removeFromSuperview];- Это удаляет видео из вида, но не останавливает звук.
Это то, что у меня есть для кода:
- (IBAction)PlayMediaButton:(id)sender
{
[moviePlayerController stop];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
NSString *movpath = [[NSBundle mainBundle] pathForResource:@"albert" ofType:@"mp4"];
MPMoviePlayerViewController* mpviewController = [[MPMoviePlayerViewController alloc]
initWithContentURL:[NSURL fileURLWithPath:movpath]];
if ([[NSFileManager defaultManager] fileExistsAtPath:movpath]) //Does file exist?
{
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:movpath]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
moviePlayerController.view.frame = CGRectMake(38, 37, 986, 618);
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
if ([moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) //Allow airplay if availabe
[moviePlayerController setAllowsAirPlay:YES];
[moviePlayerController play];
}
}
- (void)moviePlaybackComplete:(NSNotification *)notification
{
MPMoviePlayerController *moviePlayerController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController.view removeFromSuperview];
[moviePlayerController release];
}