2010-03-30 6 views
3

J'essaie d'utiliser la classe MPMoviePlayerController sur l'iPad.Problèmes MPMoviePlayerController sur iPad

Voici mon code:

multimediaPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]];    
multimediaPlayer.movieControlMode = MPMovieControlModeDefault; 
[multimediaPlayer play]; 

et cela fonctionne très bien sur l'iPhone, mais il ne veut pas courir sur l'iPad. J'entends le son de la vidéo, mais le film ne joue pas. Pourquoi cela peut-il être ce problème?

+1

Ok, les gars, je trouve que ceci: est dépréciée . La solution est multimediaPlayer.controlStyle = MPMovieControlStyleDefault; mais ça ne marche toujours pas. –

+0

c'est une réponse et devrait être affiché comme une réponse .. vous pouvez modifier votre réponse plus tard que vous avez plus d'info –

+0

Désolé, maintenant je l'ai fait. : P –

Répondre

4

Ci-dessous le code de travail parfait pour mon application. J'espère que ça ferait la même chose pour vous. L'essentiel est de définir le cadre de l'image de mpMoviePlayerController. Si vous ne le faites pas, la vidéo ne s'affichera presque pas.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

    // Register to receive a notification when the movie has finished playing. 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlayBackDidFinish:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:nil]; 

    // Register to receive a notification when the movie scaling mode has changed. 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(movieScalingModeDidChange:) 
               name:MPMoviePlayerScalingModeDidChangeNotification 
               object:nil]; 
    kDomain = [NSString stringWithString:@"http://www.virtua-book.com/"]; 
    [navigationController setNavigationBarHidden:YES]; 

    NSURL *ur=[[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"IPAD" ofType:@"mp4"]]; 
    mpMCtr=[[MPMoviePlayerController alloc] initWithContentURL:ur]; 
    mpMCtr.fullscreen=YES; 
    [mpMCtr setScalingMode:MPMovieScalingModeFill]; 
    [mpMCtr setShouldAutoplay:YES]; 
    [mpMCtr setControlStyle:MPMovieControlStyleNone]; 
    [mpMCtr setMovieSourceType:MPMovieSourceTypeFile]; 
    mpMCtr.view.frame = CGRectMake(0, 0, 1024, 768); 
    [mpMCtr setRepeatMode:MPMovieRepeatModeNone]; 

    [mpMCtr play]; 

    [ur release]; 

    // Override point for customization after app launch  
    [navigationController.view addSubview:mpMCtr.view]; 
    [window addSubview:[navigationController view]]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 


// Notification called when the movie finished playing. 
- (void) moviePlayBackDidFinish:(NSNotification*)notification 
{ 
    [mpMCtr.view removeFromSuperview]; 
} 
+0

Merci de m'avoir corrigé. –

0

Ok, les gars, j'ai trouvé que ceci: est déprécié.

La solution est multimediaPlayer.controlStyle = MPMovieControlStyleDefault; mais elle ne fonctionne toujours pas.

+1

Avez-vous obtenu une réponse pour votre Q? Je suis aussi coincé dans la même chose. – wolverine

+0

si vous avez une réponse pouvez-vous partager avec nous? – harshalb

+0

Vous devez ajouter la vue de MPMoviePlayerController à votre vue, mais si vous lisez attentivement la nouvelle documentation, vous pouvez voir que c'est un gros avantage. J'espère que ceci vous aide. –

0
MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc]initWithContentURL:movieURL]; 
mp.moviePlayer.controlStyle = 2; 
1

Quelque chose le long de ces lignes est probablement ce que vous voulez faire:

MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentUrl:movieUrl]; 
[self presentMoviePlayerViewController:mpvc]; 
1

Pour fixer en arrière/avant (ou précédent/suivant) boutons vous devez effectuer les opérations suivantes:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil]; 

... 

- (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification { 
if (moviePlayer.playbackState == MPMoviePlaybackStateStopped) { 
    [moviePlayer setContentURL:[moviePlayer contentURL]]; 
    [moviePlayer play]; 
} 
} 
Questions connexes