2010-09-20 5 views
0

J'ai un problème étrange dans mon application. J'essaye de jouer la vidéo sur l'iphone après avoir appuyé sur un bouton dans l'interface utilisateur. Mon problème est que c'est joué seulement comme audio. et le lecteur multimédia n'apparaît pas, j'entends juste le son. Voici le code des méthodes que j'utilise pour lire des vidéos.jouer de la vidéo sur l'iphone

-(void) playMovieAtURL: (NSURL*) theURL { 

MPMoviePlayerController* theMovie = 

[[MPMoviePlayerController alloc] initWithContentURL: theURL]; 
theMovie.scalingMode = MPMovieScalingModeAspectFill; 

theMovie.movieControlMode = MPMovieControlModeDefault; 

// Register for the playback finished notification 

[[NSNotificationCenter defaultCenter] 

addObserver: self 

selector: @selector(myMovieFinishedCallback:) 

name: MPMoviePlayerPlaybackDidFinishNotification 

object: theMovie]; 

[theMovie play]; 
} 



-(void) myMovieFinishedCallback: (NSNotification*) aNotification 

{ 

MPMoviePlayerController* theMovie = [aNotification object]; 

[[NSNotificationCenter defaultCenter] 

removeObserver: self 

name: MPMoviePlayerPlaybackDidFinishNotification 

object: theMovie]; 

[theMovie release]; 

} 

et voici comment j'appelle les fonctions précédentes de lire une vidéo située dans mes ressources

-(IBAction)play:(id)sender 
{ 
NSString * url; 
NSURL *theUrl; 

NSBundle *bundle = [NSBundle mainBundle]; 
if (bundle) 
{ 
    NSString *moviePath = [bundle pathForResource:@"240_320_p" ofType:@"mp4"]; 
    if (moviePath) 
    { 
     theUrl = [NSURL fileURLWithPath:moviePath]; 
    } 
} 

[self playMovieAtURL:theUrl]; 

} 

Répondre

0

Vous devez ajouter theMovie.view à votre hiérarchie d'affichage lorsque vous démarrez la lecture et retirez-le de nouveau après la lecture est fait.

+0

comment faire cela? j'ai essayé self.view = theMovie.view; et cela a fonctionné, mais je pense qu'il est pas ce que vous vouliez dire j'ai essayé: [self.view addSubview: theMovie.view] mais a aussi abouti à son seul – belhaouary

+0

avez-vous réglé correctement la propriété cadre de theMovie.view avant d'ajouter en tant que sous-vue? –

0

exacte même question plus tôt aujourd'hui: MPMoviePlayerController worked fine up to iOS 4.0 now just plays sound, no video

Vous devez ajouter [auto presentMoviePlayerViewControllerAnimated: themovie]; ..

+0

cela se traduit par l'avertissement suivant incompatibles types Objective-C 'struct MPMoviePlayerController *', prévu 'struct MPMoviePlayerViewController * lorsque l'argument passant 1 'presentMoviePlayerViewControllerAnimated:' de distinct de type Objective-C et aussi j'entendre le son, mais pas La vidéo apparaît à l'écran – belhaouary

+0

Ohh désolé, je n'ai pas vu ça. Changez MPMoviePlayerController en MPMoviePLayerViewController – LarsJK

Questions connexes