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 在影片结尾更改控件样式