0

ビデオファイルを再生するためのコードを作成しました。しかし、それをビルドすると、次のエラーが発生します。

、キャッチされない例外により 'NSInvalidArgumentException' にアプリを終了する理由: ' - [NSURL initFileURLWithPath:]:nilの文字列パラメータ' まずスローコールスタック:(0x1ed8022 0x11c0cd6 0x1e80a48 0x1e809b9 0xc6553b 0xc654c5 0x2be8 0x1ed9e99 0x32614e 0x3260e6 0x3ccade 0x3ccfa7 0x3cc266 0x34b3c0 0x34b5e6 0x331dc4 0x325634 0x17baef5 0x1eac195 0x1e10ff2 0x1e0f8da 0x1e0ed84 0x1e0ec9b 0x17b97d8 0x17b988a 0x323626 0x29b2 0x2925)例外をスローして終了

私はそれを修正するために多くのことを試みましたが、何も機能しません!解決策はありませんか?そして、はい、私はメディアプレーヤーフレームワークを実装しました!

私は次のコードをコーディングしました:

-(IBAction)playvideo {

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                         pathForResource:@"film" ofType:@"mp4"]];

    MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
                                                     initWithContentURL:url];

    [self presentMoviePlayerViewControllerAnimated:playercontroller];

    playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

    [playercontroller.moviePlayer play];

    [playercontroller release];

    playercontroller = nil;

}
4

1 に答える 1

2

問題は次の行に記述されています。

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: ' -[NSURL initFileURLWithPath:]: nil string parameter'

nilこれは、 a を許可しないパラメーターに aを渡していることを示していますnil

これが問題であることを確認する手順:

-(IBAction)playvideo {
    NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"film" ofType:@"mp4"]

    if (!videoPath) {
        NSLog(@"Video path is nil. My bundle must be set up incorrectly");
        return; // return early.
    }

    NSURL *url = [NSURL fileURLWithPath:videoPath];

    MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
                                                     initWithContentURL:url];

    // The rest of your implementation here. 

}

これは、少なくとも問題を特定するのに役立ちます。

余談ですが、リソースを取得するには、文字列ベースのファイル パスではなく、URL ベースのメソッドを使用する必要があります。しかし、一度に 1 つのこと。

于 2012-09-08T09:11:58.853 に答える