5

iOS4.1を搭載したiPhoneのリソースフォルダからビデオファイルを再生しようとしています。MPMoviePlayerViewControllerはビューを表示しますが、アクティビティインジケーターが回転している状態で、「ムービーを読み込んでいます...」とだけ表示されます。誰もがこれの原因を知っていますか?私はiPhoneで動作するはずのさまざまなビデオ形式を試しましたが、毎回同じ結果になります。

ムービープレーヤーは、コントロールの表示や非表示などのアクションに応答します。

私のコード:

-(void) playVideoNamed:(NSString *)videoName
{
    // I get the path like this so the user can enter extension in the filename
    NSString *path = [NSString stringWithFormat:@"%@/%@", 
                      [[NSBundle mainBundle] resourcePath], videoName];
    NSLog(@"Path of video file: %@", path);

    RootViewController *rootController = [(DerpAppDelegate *)[[UIApplication sharedApplication] delegate] viewController];

    NSURL *url = [NSURL URLWithString:path];

    MPMoviePlayerViewController *vc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    vc.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

    [rootController presentMoviePlayerViewControllerAnimated:vc];
    [vc.moviePlayer prepareToPlay]; // Not sure about this... I've copied this code from various others that claims this works
    [vc.moviePlayer play];
} 
4

2 に答える 2

20

問題を見つけました:

NSURL *url = [NSURL URLWithString:path];

次のように置き換える必要があります:

NSURL *url = [NSURL fileURLWithPath:path];

それを見つけるのは難しい...

于 2011-05-20T12:11:21.110 に答える
0

別のスレッドでコード行を実行していましたが、最初にメインスレッドにディスパッチして修正しました。

dispatch_async(dispatch_get_main_queue(), ^(void){
        MPMoviePlayerViewController* theMovie = [[MPMoviePlayerViewController alloc] initWithContentURL: videoURL];
        [self presentMoviePlayerViewControllerAnimated:theMovie];

});
于 2015-05-30T13:37:30.963 に答える