我知道有类似的问题已被提出,但我的其他问题略有不同,而我自己也无法找到解决方案。
我有一个应用程序,可以在整个应用程序中有意阻止界面轮换。但是,该应用程序确实播放视频,并在该视图上允许旋转。
该应用程序已经在商店中存在了一段时间,按预期运行,但我收到了一些视频,说明该视频无法播放运行iOS 7的设备(音频播放)。讨厌的部分是我无法复制问题(我已经在4s,5和5s上测试过)。视频和音频在我的所有设备上都能正常工作。
在“详细视图”屏幕上,有一个播放按钮,可以启动一个新视图的segue,允许全屏视频和旋转 -
“全屏视频”屏幕是一个UIViewController,带有MPMoviePlayerController * moviePlayer和一个(IBAction)playMovie; - 自动调用操作,以便在出现新视图时立即开始视频播放。
viewDidLoad看起来像
[super viewDidLoad];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:[[self.detailItem valueForKey:@"exerciseVideo"] description] ofType:@"mov"]];
moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:url];
self.moviePlayer.contentURL = url;
NSError *_error = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &_error];
[moviePlayer stop];
[moviePlayer setShouldAutoplay:NO];
[NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(playMovie)
userInfo:nil
repeats:NO];
并且playMovie动作看起来像
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerDidExitFullscreenNotification
object:moviePlayer];
moviePlayer.controlStyle = MPMovieControlStyleDefault;
moviePlayer.shouldAutoplay = YES;
moviePlayer.allowsAirPlay = YES;
[self.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:YES];
是否有任何理由说该视频无法播放该代码?我想知道它是否在单个设备上设置相关(或者如果还有其他后台任务可能与内存相关),但是我在这里试图解决我无法复制的问题。 p>
任何建议都将不胜感激。
答案 0 :(得分:1)
self.moviePlayer.contentURL
作业schedueledTimer...
)viewDidAppear:....
self.playerInitialized
),以防止在进入/离开全屏后重新启动播放器(因为这将重新触发该外观事件)
false
viewDidLoad
来完成
viewDidAppear:...
内,检查该标志是否设置为false
false
,请从viewDidAppear:...
true
false