MPMoviePlayerController 在 iOS 5 上不起作用

Posted

技术标签:

【中文标题】MPMoviePlayerController 在 iOS 5 上不起作用【英文标题】:MPMoviePlayerController not working on iOS 5 【发布时间】:2012-05-13 12:01:32 【问题描述】:

我正在使用 MPMoviePlayerController 播放“.3gp”视频,我从服务器获取数据并将其保存在 NSData 对象中,然后将其写入 Document 目录中的文件,这是我的代码

在 .h 中我将 videoPlayer 定义为

@interface MainViewController : UIViewController 
   MPMoviePlayerController* videoPlayer;   
@property (strong, nonatomic) MPMoviePlayerController* videoPlayer;

在.m文件中

-(void)videoWillStartPlayWithUrl:(NSData *)d


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,      YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myMove.3gp"];

    [d writeToFile:path atomically:YES];


    NSURL *url = [NSURL fileURLWithPath:path];
    adBannerView.hidden = YES;
    self.videoPlayer = [[MPMoviePlayerController alloc]initWithContentURL:url];
    self.videoPlayer.controlStyle = MPMovieControlStyleEmbedded;  
    self.videoPlayer.shouldAutoplay = YES;  

    [self.videoPlayer.view setFrame: self.view.bounds];

    [self.view addSubview:self.videoPlayer.view];  

    [self.videoPlayer setFullscreen:YES animated:YES];
    [self.videoPlayer prepareToPlay];
    [self.videoPlayer play];


它在 iOS ,我似乎无法解决阻止视频在 iOS 5 中播放的问题非常感谢您的帮助

【问题讨论】:

【参考方案1】:

经过数小时的搜索和调试,问题竟然与我尝试播放的视频的编解码器有关,

虽然它们在 ios 4 中完美运行,但 iOS 5 需要 MPMoviePlayerController 中提到的 .3GP 视频的特殊编解码器。编程指南,因此解决方案是更改我的视频的编解码器,并且该代码在 iOS 5 上完美运行

【讨论】:

【参考方案2】:

在你的头文件中这样做:-

MPMoviePlayerController *myPlayer;

并将您的属性更改为:-

@property(nonatomic, strong) MPMoviePlayerController *myPlayer;

按如下方式启动moviePlayer:-

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:Url];
self.myPlayer= player;

您可能启用了弧线。

【讨论】:

我应该向 player 还是 self.myPlayer 发送消息? [self.myPlayer play] 或 [player play] self.myplayer..还有一点需要注意的是这里必须使用强关键字 thnx 很多,但它不起作用!收到“MPMoviePlayerPlaybackDidFinishNotification”,播放器从视图中移除,除了播放器界面和顶部的加载指示器外,不显示任何内容!还有其他想法吗?

以上是关于MPMoviePlayerController 在 iOS 5 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MPMoviePlayerController 上处理多个 SRT 文件

在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏

在 UITableViewCell 中嵌入 MPMoviePlayerController

MPMoviePlayerController 在影片结尾更改控件样式

后台的 MPMoviePlayerController / AVAudioSession 在来电后不会重新开始播放

MPMoviePlayerController 在启动前显示空白屏幕?