0

からソースファイルをダウンロードしました

http://mobile.tutsplus.com/tutorials/iphone/mediaplayer-framework_mpmovieplayercontroller_ios4/

アプリは完全に機能しますが、次のコードを変更して自分のビデオを交換しようとすると:

pathForResource:@"big-buck-bunny-clip" ofType:@"m4v"

pathForResource:@"example" ofType:@"mp4"

ビデオを再生しようとするとアプリがクラッシュし、出力に次のようなメッセージが表示されます。

"2012-09-13 20:32:59.106 BigBuckBunny[1081:11f03] * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[NSURL initFileURLWithPath:]: nil string parameter' * * First throw call stack: (0x1722022 0x10f6cd6 0x16caa48 0x16ca9b9 0x4e53b 0x4e4c5 0x2da4 0x1723e99 0x36d14e 0x36d0e6 0x413ade 0x413fa7 0x413266 0x3923c0 0x3925e6 0x378dc4 0x36c634 0x1e1aef5 0x16f6195 0x165aff2 0x16598da 0x1658d84 0x1658c9b 0x1e197d8 0x1e1988a 0x36a626 0x297d 0x28f5) terminate called例外をスローしています(lldb)」

元のbig-buck-bunny-clip.m4vファイルを含むフォルダー内に新しいビデオファイルがあり、それをプロジェクトに入れました。私は何を間違っていますか、どうすれば修正できますか?

4

2 に答える 2

1

Xcode 内のファイルに移動し、[ターゲット メンバーシップ] の下の BigBuckBunny の横にあるチェックボックスをオンにすることで、自分のビデオを再生することができました。

于 2012-09-14T06:07:00.380 に答える
0

ファイルの終了と、渡すファイルパスが nil であることを確認します。

 NSString *filepath   =   [[NSBundle mainBundle] pathForResource:@"example" ofType:@"mp4"];  
 if([[NSFileManager defaultManager] fileExitsAtPath:filepath])
 {
   NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];   
   MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];  
   [self.view addSubview:moviePlayerController.view];  
   moviePlayerController.fullscreen = YES;  
   [moviePlayerController play];    
 }
 else
 {
    NSLog(@"File not exists");
 }
于 2012-09-14T03:49:18.943 に答える