MPMoviePlayerController导致statusBar消失,导致内存泄露leak

1、MPMoviePlayerController使statusBar消失

        同事写项目时,运行程序总导致statusBar状态条消失,然后就是界面会上移20个像素,导致最下面空白界面,找原因一直不知道什么导致的。然后请教老同事找到是播放视频的时候导致的,看项目中用到了MPMoviePlayerController,认为就是这个导致的bug。再然后,项目中用到了好多要播放音频的,只播放音频而不出现画面,添加了好多MPMoviePlayerController后,每次播放都会频繁的导致statusBar消失,所以就认为肯定是以及一定是MPMoviePlayerController导致的状态条消失。

代码如下:

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[moviePlayer play];
            
[[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(moviePlayBackDidFinish:)
                                                         name:MPMoviePlayerPlaybackDidFinishNotification
                                                       object:nil];

因为播放的视频控制器MPMoviePlayerController的controllerStyle设置成了MPMoviePlayerControllerStyleFullScreen,这种模式下程序会默认隐藏StatusBar,而同一APP只有一个StatusBar,当播放视频时如果StatusBar被隐藏,而在视频播放完之后没有将setStatusBarHidden设置为NO的话,则不论你回到程序中的哪个界面,StatusBar都是被隐藏的。第一种情况是由于APP的viewController采用的是相对StatusBar的布局方式,当StausBar被隐藏后,其原点和高度都相应改变,当你手动让StatusBar显示之后,要同时调整viewController的frame.

参考:  点击打开链接

2、MPMoviePlayerController导致内存泄露leak

参考:

http://www.cocoachina.com/bbs/simple/?t90818.html

http://stackoverflow.com/questions/3384388/mpmovieplayercontroller-still-leaking

http://stackoverflow.com/questions/2618243/mpmovieplayercontroller-on-large-videos-causes-massive-memory-spike-and-a-level


两句话:

谁申请谁释放的经典哲学原则

真机测试的为标准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值