2014-01-17 11 views
6
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]; 

  • Datei: ///Users/utkal/Library/Application%20Support/iPhone%20Simulator/7.0.3/Applications/F0B3AD63-7E46 -4069-8845-8B0C05425CD2/CosMos.app/PTCL.mp4

ich erhalte diese videURL Weg für den ersten CodeMPMoviePlayerController Nicht spielen Lokale Datei

  • Datei: ///Users/utkal/Library/Application%20Support/iPhone%20Simulator/7.0.3/Applications/F0B3AD63-7E46-4069-8845-8B0C05425CD2/CosMos.app/PTCL.mp4

Ich bekomme diesen videURL-Pfad für den zweiten Code.

ich alos haben verwenden

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

Aber mein Video-Player zeigen immer diese Datei geladen wird und nichts passiert. Ich weiß, wo ich Fehler mache, aber mein Glück. Bitte korrigieren Sie meinen Fehler oder sagen Sie mir, wenn eine andere Möglichkeit, lokale Videodatei zu spielen. Bitte.

enter image description here

+4

bitte versuchen Sie es: NSURL * videoURL = [NSURL fileURLWithPath: Pfad]; – Horst

+0

@horst Das funktioniert auch nicht. Ich habe das gleiche Problem. – user623396

+0

Ich habe das gleiche Problem, wenn Sie dieses Problem haben, sagen Sie mir. –

Antwort

0

Ihr Code für Video-Player sucht in Ordnung. Mit dem Pfad stimmt etwas nicht. Versuche einfach, explizit zum Pfad zu gehen. Und prüfen Sie, ob diese Datei dort vorhanden ist oder nicht. Sie können folgende Frage SO für Ihre Referenz finden Sie unter:

How to play video using MPMoviePlayerController?

+0

Ya meine Datei ist ihr Pfad. –

2

ich diese einfache Lösung stattdessen verwendet:

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

vielleicht zu spät ist, aber ich würde versuchen, so etwas wie:

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]; 

beachten Sie die "movieVC.moviePlayer.movieSourceType = MPMovieSourceTypeFile;"

+0

nicht zu spät für mich;) das hat es tatsächlich für mich gelöst. – schnabler

2
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]; 

legen Sie die Eigenschaft des MPMoviePlayerViewController in .h-Datei.

2

MPMoviePlayerController ist jetzt veraltet. Also habe ich AVPlayerViewController verwendet. und den folgenden Code geschrieben:

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]; 

Bitte beachten Sie folgende Rahmenbedingungen importieren:

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

this helps ..

0

Ein wenig spät im Spiel, aber hier ist mein kompletter 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]; 

    } 
Verwandte Themen