2012-03-15 9 views
0

pathForResourceによって返されるNSURLオブジェクトは、カスタムインポートムービーファイルの場合はnullです。MPMoviePlayerControllerおよびNSURLオブジェクト

-(NSURL *)localMovieURL 
{ 
    NSURL *theMovieURL = nil; 
    NSBundle *bundle = [NSBundle mainBundle]; 
    if (bundle) 
    { 
      NSString *moviePath = [bundle pathForResource:@"Movie"  ofType:@"m4v"]; 
     //NSString *moviePath = [bundle pathForResource:@"Movie_01" ofType:@"m4v"]; 
     //NSString *moviePath = [bundle pathForResource:@"Sample"  ofType:@"m4v"]; 
    if (moviePath) 
    { 
     theMovieURL = [NSURL fileURLWithPath:moviePath]; 
     } 

    NSLog(@" MMM moviePath = %@", moviePath); 
    NSLog(@" UUU theMovieURL = %@", theMovieURL); 

} 

return theMovieURL; 

} 

アップル(サンプルプロジェクト名 - のMoviePlayer)から上記のサンプルコードを考えてみましょう

https://developer.apple.com/library/ios/navigation/index.html?section=Resource+Types&topic=Sample+Code

Movie.m4vはサンプルが付属していますし、コンパイルしたサンプルプロジェクトはまったく問題でM4Vを果たしています。しかし、私がMovie.m4vのコピーを作成し、Movie_01.m4vという名前を付けてプロジェクトにドラッグすると、MPMoviePlayerControllerは応答しません。また、追加されたNSLog出力(MMMとUUUで始まるのは "... =(null)"になります)iMovieで自分で作ったサンプルm4v "Sample.m4v"も同じです。私が前に投稿した質問(here)私の以前の質問は、自分自身で書いたプロジェクトにも同じ問題があります: "pathForResource"メソッドは、ムービーファイルが一見正しくインポートされていても "nil"を返します。 Xcodeと同じ方法でプロジェクトにPNG写真ファイルをインポート(ドラッグ)しましたが、PNG写真はコンパイルされたプログラムで電話とシミュレーターの両方で期待どおりに表示できます。

誰かがヒント。

答えて

2

あなたの質問が重複しているようです。両方の答えは、アプリケーションバンドルにムービーを追加します(プロジェクトビルドステップ>リソースコピー)

+0

答えていただきありがとうございますが、(プロジェクトビルドステップ>リソースのコピー)はどこにありますか? – Stanley

+0

プロジェクトナビゲータでプロジェクトを選択し、ターゲットを選択し、「ビルドフェーズ」、「バンドルリソースのコピー」をクリックしてムービーを追加します。 –

+0

また、2つの質問について、最初のものは数時間前と異なる見出しの下にありました。もう1つはアップデートで、別の質問をします。質問が突然閉じられた理由を人が知らない場合に備えて、古いものはこの1つにリンクされています。 – Stanley

関連する問題