私はインターネットからmp4ファイルを実行するテストアプリケーションに取り組んでいます。コードは:
-(IBAction)playRemoteVideo
{
NSString *mp4File = @"http://archive.org/download/Pbtestfilemp4videotestmp4/video_test_512kb.mp4";
MPMoviePlayerViewController *playerController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:mp4File]];
[self presentMoviePlayerViewControllerAnimated:playerController];
playerController.moviePlayer.movieSourceType=MPMovieSourceTypeStreaming;
[playerController.moviePlayer play];
[playerController release];
playerController=nil;
}
アプリケーションを実行してビデオを再生すると、プレーヤーはしばらくの間ビデオをロードしようとしますが、コンソールでこの例外が発生した後
2012-04-18 22:45:11.309 VideoPlayer[891:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'An AVPlayerItem can occupy only one position in a player's queue at a time.'
*** First throw call stack:
(0x1df1052 0x1333d0a 0x27cfb31 0x27cbb2a 0x27e45cc 0x103b73 0xd4e6a 0x2ff2445 0x2ff44f0 0x1d28833 0x1d27db4 0x1d27ccb 0x16d8879 0x16d893e 0x24ea9b 0x1d12 0x1c85)
terminate called throwing an exception(gdb)
たとえば、m3u8ファイルで同じコードを実行すると、
http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8
ビデオを実行できますが、mp4ファイルでは同じことが機能しません。
なぜこの例外が発生したのか、コードの何が問題になっているのかわかりますか?
私はiPhoneシミュレーターでアプリケーションを実行し、XCode4.2を使用しています。よろしくTugrul