Iphone – MPMoviePlayerViewController can not play mp4 file

By | October 9, 2023

I’m working on a test application that will run an mp4 file from internet.
code is :


    NSString *mp4File = @"http://archive.org/download/Pbtestfilemp4videotestmp4/video_test_512kb.mp4";

    MPMoviePlayerViewController *playerController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:mp4File]];
    [self presentMoviePlayerViewControllerAnimated:playerController];

    [playerController.moviePlayer play];
    [playerController release];

When I run the application and played the video the player tries to load the video for a while but after I got this exception on console

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)

If I execute the same code with an m3u8 file , for instance;


I can get the video running but same does not work for mp4 file.

Do you have any idea why I got this exception and what’s wrong with my code?

I run the application on Iphone simulator and I have XCode 4.2
Best Regards

Best Solution

Set the movie player’s control style like so.

[self.mPlayer.moviePlayer setControlStyle:MPMovieControlStyleDefault];

Also, local files have the MPMovieSourceTypeFile, not MPMovieSourceTypeStreaming property set.