MPMoviePlayerController显示黑色空屏幕

Rit*_*ika 25 video objective-c mpmovieplayercontroller ios

我用MPMoviePlayerController我在我的Application Document文件夹中播放一个本地文件,我已经下载了服务器URL:

itemMoviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
 [self.view addSubview:itemMoviePlayerController.view];
 itemMoviePlayerController.fullscreen = YES;
 itemMoviePlayerController.movieSourceType = MPMovieSourceTypeFile;
 itemMoviePlayerController.initialPlaybackTime = -1.0;
 [itemMoviePlayerController play];
Run Code Online (Sandbox Code Playgroud)

当我.mov下载文件后播放文件时,它显示一个黑色的空白屏幕,应用程序UI无法使用.但是如果下次播放相同的本地文件,它可以正常播放.我甚至验证playStatelocalStateMPMoviePlayerController他们似乎罚款.什么可能是黑色空屏幕的原因?

小智 31

您需要保留MPMoviePlayerController的实例,即作为属性或实例变量.如果您不保留对电影播放器​​的引用,则会丢失该参考.


dul*_*gan 15

你可以试着把它放在[itemMoviePlayerController prepareToPlay]; 前面[itemMoviePlayerController play];

Apple首选显示全屏视频的方式是呈现模式MPMoviePlayerViewController(如Hollance所说).要呈现它,你应该使用类似的东西:

 moviePlayerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
 [self presentMoviePlayerViewControllerAnimated:moviePlayerViewController];
 [itemMoviePlayerController play];
Run Code Online (Sandbox Code Playgroud)

Apple在记录了这一点

您可以在那里阅读,您应该保留对您的引用MPMoviePlayerViewController ,以便稍后将其解雇

[self dismissMoviePlayerViewControllerAnimated:moviePlayerViewController].


mat*_*sed 13

我把它固定了

@property (strong, nonatomic) MPMoviePlayerController *moviePlayer; 
Run Code Online (Sandbox Code Playgroud)

在我的.h文件中,并调用self.moviePlayer我的所有代码,它工作!

  • 不知道为什么会这样,但其他人都知道,确实如此. (2认同)

Hol*_*nce 7

您需要使用MPMoviePlayerViewController.注意那里的"视图"这个词.


Rit*_*ika 0

将设备 iOS 更新到 5.0 后,此问题似乎已得到解决。
似乎是以前版本的 iOS SDK 问题