2010-11-25 15 views
0

本当に明白なものがありません。ビデオファイルを再生できません

私は<MediaPlayer/MediaPlayer.h>を含まれており、このコード持っていました:

NSURL *videoURL = [NSURL fileURLWithPath:pathToFile]; 
MPMoviePlayerViewController *mediaPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL]; 
[self presentMoviePlayerViewControllerAnimated:mediaPlayer]; 
mediaPlayer.view.backgroundColor = [UIColor blackColor]; 
[mediaPlayer release]; 

をしかし、ビデオが再生されません。私はビデオが完璧に動作する別の場所からコードをコピーしました。

pathToFileこれは、以前の行で、リソースフォルダからドキュメントディレクトリにビデオを移動するために変数が使用されているためです。

なぜ機能しないのでしょうか?

おかげ

+0

あなたがそうだと思うところを再確認してください。コピーが完了しましたか? –

+0

'[[NSFileManager defaultManager] fileExistsAtPath:(NSString *)path]' –

+0

また、リソースディレクトリからは再生されますが、ドキュメントディレクトリは再生されませんか?このコードが実行されるとどうなりますか? –

答えて

2

あなたは、これが私のために正常に動作しますpresentMoviePlayerViewControllerAnimated

NSString *movieFile=[[NSBundle mainBundle] pathForResource:@"movie" ofType:@"m4v"]; 
moviePlayer= [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.view.frame = self.view.frame; 
[self.view addSubview:moviePlayer.view]; 
[moviePlayer setFullscreen:YES animated:YES]; 

を除いて、次のコードを使用することができます。

+0

これは動作しますが、ViewControllerは動作しません! :(私はそれが動作するようにナビゲーションコントローラに取り組んでいたビューコントローラを作る必要があることがわかりました。なぜなら、これについてのリンゴのリファレンスは 'このメソッドはUIViewControllerクラスのカテゴリの一部であり、 Media Playerフレームワークで実装されています。 –

2

私はpresentMoviePlayerViewControllerAnimatedは、その受信機を保持しないと思うので、あなたはあまりにも早くムービープレイヤーをリリースしているかのように見えます。あなたはMediaPlayerの保有財産作ってみることができます:

@interface MyClass : SuperClass { 
    MVMoviePlayerViewController *mediaPlayer; 
} 
@property (nonatomic, retain) MVMoviePlayerViewController *mediaPlayer; 
@end 

@implementation MyClass 
@synthesize mediaPlayer; 
// rest of class implementation here... 
@end 

次にように初期化:

self.mediaPlayer = [[[MPMoviePlayerViewController alloc] 
        initWithContentURL:videoURL] autorelease]; 
その後

とリリースで:

self.mediaPlayer = nil; 

(ビデオは持って後に発生したコードを書くために終了したら、MPMoviePlayerPlaybackDidFinishNotification通知を確認してください)

また、 n presentMoviePlayerViewControllerAnimatedがiOS 3.2ではじめて登場したので、このコードは以前のiOSバージョンでは動作しません。しかし、私はそれがこの場合の問題だとは思わない。

関連する問題