1

MPMoviePlayerController を使用して「.3gp」ビデオを再生しています。サーバーからデータを取得し、NSData オブジェクトに保存してから、Document ディレクトリ内のファイルに書き込みます。コードは次のとおりです。

.hi で、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でビデオが再生されない問題を理解できないようです。助けていただければ幸いです

4

2 に答える 2

1

何時間も検索してデバッグした後、問題は私が再生しようとしていたビデオのコーデックに関連していることが判明しました。

iOS 4では完全に機能しましたが、iOS 5では、MPMoviePlayerControllerで説明されているように.3GPビデオの特別なコーデックが必要です。プログラミングガイドなので、解決策は私のビデオのコーデックを変更することであり、コードはiOS5で完全に機能しました

于 2012-05-15T05:11:47.117 に答える
0

ヘッダーファイルでこれを行います:-

MPMoviePlayerController *myPlayer;

プロパティを次のように変更します:-

@property(nonatomic, strong) MPMoviePlayerController *myPlayer;

次のように moviePlayer を開始します。

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

アークが有効になっている可能性があります。

于 2012-05-13T12:09:35.877 に答える