开发者

MPMoviePlayerController "Loading Movie..."

开发者 https://www.devze.com 2023-03-07 12:16 出处:网络
I\'m trying to play a video file from the resource folder on iPhone with iOS 4.1. The MPMoviePlayerViewController displays the view but it only says \"Loading Movie...\" forever with the activity indi

I'm trying to play a video file from the resource folder on iPhone with iOS 4.1. The MPMoviePlayerViewController displays the view but it only says "Loading Movie..." forever with the activity indicator rotating. Anyone knows the cause of this? I've tried with various video formats that are supposed to work on iPhone, same result every time.

The movie player responds to actions like showing and hiding the controls.

My code:

-(void) playVideoNamed:(NSString *)videoName
{
    // I get the path like this so the user can enter extension in the filename
    NSString *path = [NSString stringWithFormat:@"%@/%@", 
                      [[NSBundle mainBundle] resourcePath], videoName];
    NSLog(@"Path of video file: %@", path);

    RootViewController *rootController = [(DerpAppDelegate *)[[UIApplication sharedApplication] delegate] viewController];

    NSURL *url = [NSU开发者_StackOverflow社区RL URLWithString:path];

    MPMoviePlayerViewController *vc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    vc.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

    [rootController presentMoviePlayerViewControllerAnimated:vc];
    [vc.moviePlayer prepareToPlay]; // Not sure about this... I've copied this code from various others that claims this works
    [vc.moviePlayer play];
} 


Found out the issue:

NSURL *url = [NSURL URLWithString:path];

Must be replaced with:

NSURL *url = [NSURL fileURLWithPath:path];

Hard to spot that one...


I was performing the lines of code on a different thread, first dispatching to the main thread fixed it:

dispatch_async(dispatch_get_main_queue(), ^(void){
        MPMoviePlayerViewController* theMovie = [[MPMoviePlayerViewController alloc] initWithContentURL: videoURL];
        [self presentMoviePlayerViewControllerAnimated:theMovie];

});
0

精彩评论

暂无评论...
验证码 换一张
取 消