首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPMoviePlayerViewController内存问题

MPMoviePlayerViewController内存问题
EN

Stack Overflow用户
提问于 2010-12-16 23:36:13
回答 1查看 942关注 0票数 0

我在iPad iOS 4.2上使用MPMoviePlayerViewController时遇到问题。应用程序播放视频,但当视频停止时,内存不会释放。为了创建一个视频播放器,我使用了以下代码:

代码语言:javascript
复制
    MPMoviePlayerViewController * videoPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:articleUrl];
    [videoPlayer moviePlayer].movieSourceType = MPMovieSourceTypeFile;
    [videoPlayer moviePlayer].controlStyle = MPMovieControlStyleDefault;
    [videoPlayer moviePlayer].scalingMode = MPMovieScalingModeAspectFit;
    [videoPlayer moviePlayer].fullscreen = NO;

    self.playerViewController = videoPlayer;
    [videoPlayer release];
    videoPlayer = nil;

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(movieFinishedCallback:) 
                                                 name:MPMoviePlayerPlaybackDidFinishNotification 
                                               object:[playerViewController moviePlayer]];

    MPMoviePlayerController *player = [playerViewController moviePlayer];

    CGRect playerFrame = CGRectMake(20, 20, self.view.frame.size.width - 40, self.view.frame.size.height - 40); 
    player.view.frame = playerFrame;
    [self.view addSubview:player.view];
    [player play];

下面是movieFinishedCallback:方法代码:

代码语言:javascript
复制
    - (void) movieFinishedCallback:(NSNotification*) aNotification {
    MPMoviePlayerController *player = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                    name:MPMoviePlayerPlaybackDidFinishNotification 
                                                  object:player];
    [player.view removeFromSuperview];
    [player release];
    player = nil;

}

有人能帮我吗?我已经阅读了很多与这个问题相关的主题,但还没有找到解决方案。

EN

Stack Overflow用户

发布于 2010-12-17 00:56:56

你的代码看起来不错--你的版本与你的保留相匹配,等等。

你在Instruments中运行过这个吗--也就是说,它肯定是一个漏洞吗?你怎么知道内存没有被释放?

视频回放框架让你的视频保持缓存没有错,只要它在你运行时释放内存(例如,得到一个内存不足的警告)。试着在模拟器中运行它并模拟一个内存警告--我打赌内存会被释放。

此外,你也不知道它是否会在任何时候自动发布。

我不会担心这个问题,直到你遇到内存警告。在此之前,我只是假设视频框架知道它在做什么!

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4462471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档