utkal patel
utkal patel

Reputation: 1421

MPMoviePlayerController Not playing Local file

 NSString *path = [[NSBundle mainBundle] pathForResource:@"PTCL" ofType:@"mp4"];    
  NSURL *videoURL = [NSURL URLWithString:path];    
        MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];    
        [moviePlayerController.view setFrame:self.view.frame];
        [self.view addSubview:moviePlayerController.view]; 
        moviePlayerController.controlStyle=MPMediaTypeAnyVideo;
        moviePlayerController.fullscreen = YES;
        [moviePlayerController prepareToPlay];
        [moviePlayerController play];

 NSString *path = [[NSBundle mainBundle] pathForResource:@"PTCL" ofType:@"mp4"];   

path=[NSString stringWithFormat:@"file:/%@",path];   
NSURL *videoURL = [NSURL URLWithString:path];

MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayerController.view setFrame:self.view.frame];
[self.view addSubview:moviePlayerController.view];

moviePlayerController.shouldAutoplay=YES;
moviePlayerController.controlStyle=MPMediaTypeAnyVideo;
moviePlayerController.fullscreen = YES;
[moviePlayerController prepareToPlay];
[moviePlayerController play];

I am getting this videURL path for first code

I am getting this videURL path for second code.

I have alos use

NSURL *videoURL = [[NSURL alloc]init];
    videoURL = [[NSBundle mainBundle] URLForResource:@"PTCL" withExtension:@"mp4"];

But my video player always show that file is loading and nothing happen. I know some where I am doing mistake,but hard luck of mine. please correct my mistake or tell me if any another way to play local video file.Please.

enter image description here

Upvotes: 6

Views: 8485

Answers (6)

Sam B
Sam B

Reputation: 27608

A little late in the game but here's my complete code

In *.h

@interface v1SupportTable : UITableViewController
{
    MPMoviePlayerController *moviePlayer1;
}

In *.m

- (IBAction) playVideoBtn
{

        NSURL *videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sample_movie" ofType:@"mp4"]];
        NSLog(@"videoURL: %@ ...", videoURL);

        moviePlayer1 =[[MPMoviePlayerController alloc] initWithContentURL:videoURL];


        [[moviePlayer1 view] setFrame: [self.view bounds]];  // frame must match parent view
        [self.view addSubview: [moviePlayer1 view]];
        [moviePlayer1 setFullscreen:YES]; 


        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doneButtonClicked) name:MPMoviePlayerWillExitFullscreenNotification object:nil];

        [moviePlayer1 play];


    }


    -(void)playMediaFinished:(NSNotification*)theNotification
    {

        moviePlayer1=[theNotification object];
        [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer1];
        [moviePlayer1.view removeFromSuperview];

        //when finished dimiss window
        [moviePlayer1 stop];
        [moviePlayer1.view removeFromSuperview];

    }

    -(void)doneButtonClicked
    {
        //[self.navigationController setNavigationBarHidden:NO animated:NO];
        [moviePlayer1 stop];
        [moviePlayer1.view removeFromSuperview];

    }

Upvotes: 0

Manab Kumar Mal
Manab Kumar Mal

Reputation: 21378

MPMoviePlayerController is Deprecated Now. So I have used AVPlayerViewController. and written the following code:

NSURL *videoURL = [NSURL fileURLWithPath:filePath];
AVPlayer *player = [AVPlayer playerWithURL:videoURL];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
//[playerViewController.player play];//Used to Play On start
[self presentViewController:playerViewController animated:YES completion:nil];

Please do not forget to import following frameworks:

#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>

Hope this Helps..

Upvotes: 2

Daxesh Nagar
Daxesh Nagar

Reputation: 1415

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"CapturedMedia"];
NSString *filePath = [dataPath stringByAppendingPathComponent:@"/itemVideo.mp4"];
_moviePlayer =[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:filePath]];
[[_moviePlayer view] setFrame:[[self view] bounds]];
[[_moviePlayer moviePlayer] prepareToPlay];
[[_moviePlayer moviePlayer] setShouldAutoplay:YES];
[[_moviePlayer moviePlayer] setControlStyle:2];
[[_moviePlayer moviePlayer] setRepeatMode:MPMovieRepeatModeNone];
[self presentMoviePlayerViewControllerAnimated:_moviePlayer];

you set the property of the MPMoviePlayerViewController in .h file.

Upvotes: 2

Head_Worx
Head_Worx

Reputation: 136

maybe is too late but i would try something like:

MPMoviePlayerViewController *movieVC = [[MPMoviePlayerViewController alloc] initWithContentURL:file.location];
movieVC.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
movieVC.moviePlayer.fullscreen = YES;
movieVC.moviePlayer.allowsAirPlay = YES;
movieVC.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[self presentMoviePlayerViewControllerAnimated:movieVC];

notice the "movieVC.moviePlayer.movieSourceType = MPMovieSourceTypeFile;"

Upvotes: 4

user623396
user623396

Reputation: 1547

I used this simple solution instead:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]];
MPMoviePlayerViewController* viewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:viewController];

Upvotes: 2

V-Xtreme
V-Xtreme

Reputation: 7333

Your code for movie player is looking fine . There is something wrong with the path . Just try to go to the path explicitly . And check whether that file is present there or not. You can see following SO question for your reference :

How to play video using MPMoviePlayerController?

Upvotes: 0

Related Questions