【问题标题】:Release MPMoviePlayer when using a tabbarcontroller使用 tabbarcontroller 时释放 MPMoviePlayer
【发布时间】:2011-03-04 14:26:17
【问题描述】:

我正在使用其中一个视图具有 MPMoviePlayer 的 tabbarcontroller。它工作正常,除了如果我更改标签,电影不会停止并继续在后台播放。然后,如果我尝试返回到电影选项卡,它就会崩溃。

我认为我必须释放 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];
}

有什么建议吗?谢谢你:)

【问题讨论】:

  • 或者...是否可以让视图全屏打开视频(就像我认为旧的视频播放代码曾经做的那样),然后您要么退出中途退出或观看它一路?也许这个是从标签视图中的播放按钮链接的?

标签: iphone cocoa-touch mpmovieplayer tabbarcontroller


【解决方案1】:

如果你真的想在标签切换时释放 MPMoviePlayer,那么在 viewWillDisappearviewDidDisappear 中进行。正如您所描述的,现在它在后台仍然存在。当您返回选项卡时,您会尝试再次创建它。

很难说崩溃的确切原因是什么,似乎有几种可能性。下次用调用堆栈写一个“为什么会崩溃”的问题。

也许您可以考虑暂停/恢复,这样您就不需要在每次用户更改标签时重新分配新的电影播放器​​?在 viewDidLoad 和 viewDidUnload 中分配/释放,但在 viewWillAppear 和 viewWillDisappear 中播放/暂停。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多