Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone MPMoviePlayerController在iOS 5上不工作_Iphone_Objective C_Ios_Mpmovieplayercontroller_Ios5 - Fatal编程技术网

Iphone MPMoviePlayerController在iOS 5上不工作

Iphone MPMoviePlayerController在iOS 5上不工作,iphone,objective-c,ios,mpmovieplayercontroller,ios5,Iphone,Objective C,Ios,Mpmovieplayercontroller,Ios5,我用MPMoviePlayerController播放一个“.3gp”视频,我从服务器获取数据并保存在NSData对象中,然后将其写入文档目录中的文件这是我的代码 在.h中,我将videoPlayer定义为 @interface MainViewController : UIViewController { MPMoviePlayerController* videoPlayer; } @property (strong, nonatomic) MPMoviePlayerControl

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

在.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<5中工作得很好,但在iOS 5中它只显示一个黑屏并直接退出,我似乎无法找出阻止在iOS 5中播放视频的问题。非常感谢您的帮助

在头文件中执行以下操作:-

MPMoviePlayerController *myPlayer;
并将您的财产更改为:-

@property(nonatomic, strong) MPMoviePlayerController *myPlayer;
启动电影播放器,如下所示:-

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

您可能已启用arc。

在头文件中执行以下操作:-

MPMoviePlayerController *myPlayer;
并将您的财产更改为:-

@property(nonatomic, strong) MPMoviePlayerController *myPlayer;
启动电影播放器,如下所示:-

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

您可能已经启用了arc。

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


虽然它们在iOS 4中工作得很好,但iOS 5需要.3GP视频的特殊编解码器,如中所述。编程指南,所以解决方案是更改我视频的编解码器,代码在iOS 5上运行得非常好。经过数小时的搜索和调试,问题最终证明与我试图播放的视频的编解码器有关


虽然它们在iOS 4中工作得很好,但iOS 5需要.3GP视频的特殊编解码器,如中所述。编程指南,所以解决方案是更改我视频的编解码器,并且代码在iOS 5上运行良好

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