Я использую tabbarcontroller, в котором одно из представлений имеет MPMoviePlayer.Он работает нормально, за исключением того, что если я изменю вкладку, фильм не останавливается и продолжает играть в фоновом режиме.Затем, если я пытаюсь вернуться на вкладку фильма, происходит сбой.
Я думаю, что единственный код, который я должен выпустить в MPMoviePlayer, это когда он завершит воспроизведение, но я хочу, чтобы он был освобожден, когда я изменил представления вместо,Затем, если я вернусь к вкладке Фильм, мы начнем заново.
В моем файле .h настроены как:
import < UIKit/UIKit.h>
import < MediaPlayer/MediaPlayer.h>
@interface SecondViewController : UIViewController {
MPMoviePlayerController *player;
}
@end
и в моем файле .m есть:
- (void)viewDidLoad {
NSString *url = [[NSBundle mainBundle]
pathForResource:@"vid"
ofType:@"m4v"];
player = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL fileURLWithPath:url]];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
//--called when the movie view and then add it to the View window--
player.view.frame = CGRectMake(10, 10, 300, 300);
[self.view addSubview:player.view];
//--play movie--
[player pause];
[super viewDidLoad];
}
//--called when the movie is done playing--
- (void) movieFinishedCallback:(NSNotification*) aNotification {
MPMoviePlayerController *moviePlayer = [aNotification object];
[[NSNotificationCenter defaultCenter]
removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
[moviePlayer.view removeFromSuperview];
[player release];
}
Есть предложения?Спасибо:)