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)から上記のサンプルコードを考えてみましょう
Movie.m4vはサンプルが付属していますし、コンパイルしたサンプルプロジェクトはまったく問題でM4Vを果たしています。しかし、私がMovie.m4vのコピーを作成し、Movie_01.m4vという名前を付けてプロジェクトにドラッグすると、MPMoviePlayerControllerは応答しません。また、追加されたNSLog出力(MMMとUUUで始まるのは "... =(null)"になります)iMovieで自分で作ったサンプルm4v "Sample.m4v"も同じです。私が前に投稿した質問(here)私の以前の質問は、自分自身で書いたプロジェクトにも同じ問題があります: "pathForResource"メソッドは、ムービーファイルが一見正しくインポートされていても "nil"を返します。 Xcodeと同じ方法でプロジェクトにPNG写真ファイルをインポート(ドラッグ)しましたが、PNG写真はコンパイルされたプログラムで電話とシミュレーターの両方で期待どおりに表示できます。
誰かがヒント。
答えていただきありがとうございますが、(プロジェクトビルドステップ>リソースのコピー)はどこにありますか? – Stanley
プロジェクトナビゲータでプロジェクトを選択し、ターゲットを選択し、「ビルドフェーズ」、「バンドルリソースのコピー」をクリックしてムービーを追加します。 –
また、2つの質問について、最初のものは数時間前と異なる見出しの下にありました。もう1つはアップデートで、別の質問をします。質問が突然閉じられた理由を人が知らない場合に備えて、古いものはこの1つにリンクされています。 – Stanley