gpt4 book ai didi

iphone - MPMoviePlayerController 仍然泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:49 25 4
gpt4 key购买 nike

我释放了 MPMoviePlayerController 但内存分配和事件对象仍然高于对象分配之前。但是,如果我重新分配对象,它不会泄漏更多。我的应用程序实际上使用了很多媒体文件并且内存消耗很高。我想完全释放不需要的内存以避免内存警告。

电影播放器​​版本:

        player.initialPlaybackTime = -1;
[player.view removeFromSuperview];
[player stop];
[player release];

电影播放器​​分配:

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video0_hd.mov" ofType:nil]];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];
player.view.frame = placeholder.frame;
[self.view addSubview:player.view];
[player play];

最佳答案

我也有这个问题。

iPad 用于预加载视频流的缓存未完全清空。所以每次,这个带有视频播放器的页面都会被清理释放,清理后分配的内存仍然包含缓存内存。对于大视频,这可能高达 50 MB。

这实际上不是内存泄漏:

如果再次打开该页面,则重新分配缓存。但是仍然令人沮丧,因为你想要一个干净的退出情况,这意味着当这个页面被留下并被清理时,这个页面使用的所有内存都应该被释放,包括用于缓存视频流的内存......!

经过一些认真的调整后,这一系列命令似乎可以完成工作:

======================

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

[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerDidExitFullscreenNotification
object:myMoviePlayer];

[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerLoadStateDidChangeNotification
object:myMoviePlayer];

[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMovieDurationAvailableNotification
object:myMoviePlayer];
[myMoviePlayer pause];
myMoviePlayer.initialPlaybackTime = -1;
[myMoviePlayer stop];
myMoviePlayer.initialPlaybackTime = -1;
[myMoviePlayer.view removeFromSuperview];
[myMoviePlayer release];

=================================

步骤:

1 - 删除您用于电影播放器​​的所有通知程序。

2 - 暂停电影

3 - 设置播放时间开始

4 - 停止电影

5 - 再次设置播放时间开始

6 - 现在删除电影 View

7 - 最后释放电影播放器​​

在我的情况下,我的 iPad (OS 4.2) 上的视频缓存也被释放了。并留下一个干净的分配内存情况,等于打开视频播放器页面之前的大小。所以同样进入和退出内存。

希望这对你有帮助......

关于iphone - MPMoviePlayerController 仍然泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3384388/

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