【问题标题】:MPMoviePlayerController showing black screen in iOS 5 onlyMPMoviePlayerController 仅在 iOS 5 中显示黑屏
【发布时间】:2012-11-24 09:54:53
【问题描述】:

我正在下载一个 aac 文件并使用以下代码在 MPMoviePlayerController 中播放它

movieController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:self.filePath]];
[self.view addSubview:movieController.view];
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
movieController.view.frame = CGRectMake(0,0,screenSize.width, screenSize.height);
[movieController setFullscreen:YES];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doneBtnMediaPlayer:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];

movieController 是(非原子,强)类属性

这适用于除 iOS 5(和 iOS 5 模拟器)之外的所有 iOS。 在 iOS 5 中它显示黑屏并在后台播放文件。

我注意到的另一件事是,当我在现有应用程序上运行应用程序时,它在 iOS5 上也可以正常工作。但是当我从设备中删除应用程序然后运行它时,它只是显示黑屏。

【问题讨论】:

  • 2013 年 12 月 .. 提示 - 关于文件扩展名(文件来自网络)非常不稳定。在我的应用程序中,.MOV 有效,.mov 使 iPhone 严重崩溃。奇怪。模拟器也根本不起作用,它完全没用,只会崩溃。最后,在 MPMoviePlayerViewController 方法有效时,MPMoviePlayerController 无用且损坏。

标签: iphone ios ios5 ios-simulator mpmovieplayercontroller


【解决方案1】:

看看这是否有帮助:

这是您的标头 (.h) 文件 #进口 #导入

@interface ViewController : UIViewController

@property(nonatomic,retain)MPMoviePlayerViewController *playerController;

@end

这是你的实现文件 (.m) #import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize playerController;

- (void)viewDidLoad
{
    [super viewDidLoad];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"gold etche" ofType:@"mov"]];
playerController = [[MPMoviePlayerViewController alloc]initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:playerController];
[self.view insertSubview:playerController.view atIndex:0];
playerController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
playerController.moviePlayer.controlStyle = MPMovieControlStyleDefault;
playerController.moviePlayer.scalingMode = MPMovieScalingModeNone;

[playerController.moviePlayer play];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

}

@end

我在 IOS 5(5.0 和 5.1)和 IOS 6 中对此进行了测试,一切似乎都很好

【讨论】:

  • 感谢您的快速回复,如果我使用此代码然后播放后 ViewController 会弹出。为了避免我删除了它的观察者,我没有找到任何方法来删除 VC,因为完成按钮不做任何事情。
  • 我遇到了同样的问题,这是唯一的解决方案,谢谢 :D
  • 很高兴它有帮助。非常感谢您对我的回答投赞成票。
猜你喜欢
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多