以前にも同様の質問が投稿されていることは承知していますが、自分に合った解決策が見つからないようです。MPMoviePlayerControllerのivarを格納するMoviePlayerクラスがあり、クラスには次のメソッドがあります。
-(void)playMovie:(NSString *)movieName
{
NSURL *movieURL;
NSBundle *bundle = [NSBundle mainBundle];
if(bundle)
{
NSString *moviePath = [bundle pathForResource:movieName ofType:@"m4v"];
if(moviePath)
{
movieURL = [NSURL fileURLWithPath:moviePath];
}
}
MPMovieController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
if(mp)
{
self.moviePlayer = mp;
[mp release];
[self.moviePlayer play];
}
[movieURL release];
}
呼び出すと、ムービーが正常に再生されたらムービーを再生しますが、別の(または同じ)ムービーファイルで再度呼び出されると、次のエラースタックが発生します。
_class_isInitialized
_class_lookupMethodAndLoadCache objc_msgSend
-[MoviePlayer setMoviePlayer:]
-[MoviePlayer playMovie:]
修正方法がわかりません!self.moviePlayer = mpが呼び出されると、現在のmoviePlayerが解放され、新しいmoviePlayerが追加されると思いましたか?プロパティは(非アトミック、保持)に設定されます。誰か助けてもらえますか?
ありがとう