我有一个详细视图,当详细视图中的viewdidload时,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;
}
你们有什么建议?
提前致谢,
答案 0 :(得分:1)
我比viewWillDisappear更喜欢viewDidDisappear的用户体验。动画开始后电影停止 - 音频以这种方式更好地为我流动。
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[_moviePlayer stop];
}
答案 1 :(得分:0)
我遇到了类似的问题。我无法使用“viewDidDisappear”或“viewWillDisappear”,因为我有一个“配置”类型的视图,可以在播放内容时打开,它将触发这两种方法。
编辑:发现viewDidUnload和viewWillUnload不再被调用(我目前在iOS 6+设备上)...
来自文档:
可用性:iOS(3.0及更高版本)不推荐使用:视图不再存在 在低内存条件下清除,因此永远不会调用此方法。
我刚创建了一个名为unload的简单函数,在函数内部设置我需要的任何对象= nil(我正在使用ARC)。在我调用删除视图的时候,我也调用了卸载函数。希望它可以帮到某人。