ios - MPMoviePlayerController 已发布,但内存使用率仍然很高

标签 ios objective-c memory mpmovieplayercontroller

我正在使用 MPMoviePlayerController 播放在线视频(我正在使用 ARC),代码如下:

_moviePlayer = [[ZXMPMoviePlayerController alloc] init];
_moviePlayer.view.frame = CGRectMake(0, 100, 320, 320);
_moviePlayer.controlStyle = MPMovieControlStyleNone;
[self.view addSubview:_moviePlayer.view];
NSString *sourcePathStr = @"";  //video url
_moviePlayer.contentURL = [NSURL URLWithString:sourcePathStr];
_moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
[_moviePlayer prepareToPlay];
[_moviePlayer play];

在观察 _moviePlayer 的释放情况下,ZXMPMoviePlayerController 是 MPMoviePlayerController 的子类。

现在我确定 _moviePlayer 在我离开这个 VC 后被释放了(因为我在 ZXMPMoviePlayerController 的 dealloc 方法中打印了日志)(VC 也被释放了。),但是我的应用程序的内存使用率仍然很高,这是一个测试演示,除了电影播放器​​外,vc 是干净的。 我认为它一定是 _moviePlayer 的某些东西仍在内存中,就像其他东西的缓存,我不知道......

有什么想法吗?帮助...

在 .h 中

@interface ZXMPMoviePlayerController : MPMoviePlayerController

@end

以.m为单位 #import "ZXMPMoviePlayerController.h"

@implementation ZXMPMoviePlayerController


- (void)dealloc
{
    NSLog(@"%s",__FUNCTION__);
}

@end

最佳答案

您好,请确保您使用 @autoreleasepool 释放内存包装所有代码。在 dealloc 中,您应该清理内存。当您使用 dealloc 方法时,您应该检查是否所有对象都已释放以避免内存泄漏。

- (void)dealloc
{
   [moviePlayer_ release];
    moviePlayer_ = nil;
}

您应该如何调用视频播放器。

@autoreleasepool
{

    [_moviePlayer release];
    _moviePlayer = nil;

    _moviePlayer = [[ZXMPMoviePlayerController alloc] init];
    _moviePlayer.view.frame = CGRectMake(0, 100, 320, 320);
    _moviePlayer.controlStyle = MPMovieControlStyleNone;
    [self.view addSubview:_moviePlayer.view];
    NSString *sourcePathStr = @"";  //video url
    _moviePlayer.contentURL = [NSURL URLWithString:sourcePathStr];
    _moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
    [_moviePlayer prepareToPlay];
    [_moviePlayer play];


}

关于ios - MPMoviePlayerController 已发布,但内存使用率仍然很高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25781249/

相关文章:

ios - Xcode - Objective C - 以编程方式播放 AVPlayer - 使用标准/系统皮肤播放本地视频

c++ - 如何修复 g++ 内存范围重叠?

c++ - 将指向堆栈变量的指针传递给 realloc() 是否有效?

ios - 多个 IBOutlet 到另一个 VC

ios - Core Data 的线程错误

ios - 如何在 iOS 中对大小字符串的 NSArray 进行排序?

ios - ObjC在字符串中搜索@(iOS @转义码)

c - 将数据写入 C 中另一个程序的指针?

ios - 在 iOS swift 中使用多点连接

ios - 如何用字典中的数据填充 UITableView。 swift