【问题标题】:Memory leaks when playing a video iPhone播放视频 iPhone 时内存泄漏
【发布时间】:2011-10-11 11:59:41
【问题描述】:

我需要在我的应用上播放一个简单的视频。我一直在互联网上寻找如何播放视频,我发现我需要导入我所做的 MediaPlayer.framwork。我有一个名为:

以及我用来播放它的代码:

NSString *url = [[NSBundle mainBundle] 
                 pathForResource:@"Final_Valores_Pacific" 
                 ofType:@"m4v"];


MPMoviePlayerController *player = 
                                [[MPMoviePlayerController alloc] 
                                initWithContentURL:[NSURL fileURLWithPath:url]];

我缺少将其添加到视图的代码,但只是该代码会造成泄漏:

播放视频的正确方法是什么?如何避免内存泄漏?

【问题讨论】:

    标签: iphone objective-c memory-leaks


    【解决方案1】:

    当你alloc一个对象时,你必须在最后释放它:

    // ...some code
    NSString *url = [[NSBundle mainBundle] 
                     pathForResource:@"Final_Valores_Pacific" 
                     ofType:@"m4v"];
    
    
    MPMoviePlayerController *player = 
                                    [[MPMoviePlayerController alloc] 
                                    initWithContentURL:[NSURL fileURLWithPath:url]];
    // ...use player
    [player release];
    

    【讨论】:

    • 我需要它。视频播放完毕后我释放它。抱歉没有提到...
    • 如果我立即发布它,我不会得到泄漏,这很好,但我需要播放视频。我应该改为自动释放吗?
    【解决方案2】:

    您是否在模拟器上遇到这种泄漏?我在一个我过去只在模拟器上工作过的应用程序上得到了这个,而不是在 iPhone 上。

    也有类似的问题:

    iPhone: OpenAL & AudioToolbox leak

    【讨论】:

    • 我的应用程序崩溃了,所以我试图找出漏洞在哪里。有时播放视频时会崩溃。当在模拟器上运行它时,它会显示泄漏,所以我假设这些是泄漏。我会看看你的链接。谢谢..
    • @Tono Nam,这就是我的怀疑。这个问题从 iOS 2 开始就一直存在,但 Apple 仍然没有修复它。绝对是一种痛苦。
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2011-12-10
    • 2011-05-24
    相关资源
    最近更新 更多