gpt4 book ai didi

ios - MPMoviePlayerController 导致泄漏

转载 作者:行者123 更新时间:2023-11-28 20:36:41 25 4
gpt4 key购买 nike

我正在开发一个视频量很大的 iPad 专用 iOS 应用程序,它使用 ARC,但是当我尝试使用 MPMoviePlayerController 时似乎出现了泄漏,仪器在为视频播放器对象分配内存的代码行上引发了内存泄漏, 有任何想法吗?视频播放完成后,视频播放器的清理似乎也没有发生。

非常感谢任何帮助,一直在到处寻找答案,因为您可以看出这个问题在很大程度上是应用程序性质的阻碍。

代码:

@interface ViewController ()
@property(nonatomic,strong) MPMoviePlayerController * vidPlayer;
@end

@implementation ViewController
@synthesize vidPlayer;

- (void)viewDidLoad
{
@autoreleasepool {

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self playVideoForFile:@"01_intro"];
}
}

-(void)playVideoForFile:(NSString*)p_fileName
{
NSString *path = [[NSBundle mainBundle] pathForResource:p_fileName ofType:@"mp4"];
NSURL *tempURI = [NSURL fileURLWithPath:path];
vidPlayer = [[MPMoviePlayerController alloc] initWithContentURL:tempURI];

[vidPlayer setControlStyle:MPMovieControlStyleNone];
[vidPlayer setAllowsAirPlay:NO];

[vidPlayer.view setFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.height,[[UIScreen mainScreen] bounds].size.width)];


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(vidFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:vidPlayer];

[vidPlayer play];

[self.view addSubview:vidPlayer.view];

}

-(void)vidFinishedCallback:(NSNotification*)aNotification
{
[vidPlayer pause];
vidPlayer.initialPlaybackTime = -1;
[vidPlayer stop];
vidPlayer.initialPlaybackTime = -1;
[vidPlayer.view removeFromSuperview];
vidPlayer = nil;

[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:vidPlayer];


}

最佳答案

我试过了

MPMoviePlayerController *movieController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:movieController];
movieController = nil;

这似乎有效。

关于ios - MPMoviePlayerController 导致泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com