2010-09-13 19 views
1

Je suis en train de faire des vidéos à jouer de mon serveur sur l'appareil iPhone. J'utilise la méthode suivante pour le faire, cependant, cela ne fonctionne que dans le simulateur; et sur mon iPhone 4. Cela ne fonctionne pas sur l'iPhone 3G?MPMoviePlayerViewController se ferme inopinément

Si j'appelle cette méthode sur l'iPhone 3G, il ouvre l'écran modal vidéo, commence à charger la vidéo, et puis ferme l'écran modal brusquement. Aucune erreur n'est affichée dans la console.

L'iPhone 3G a la version 4.0 installée. Mon iPhone 4 a la version 4.1.

Quelqu'un d'autre a-t-il déjà vécu cela?

-(IBAction)playMedia{ 

NSString* url = [self.data objectForKey:@"url"];  

//initialize the movie player 
self.moviePlayerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:url]]; 

//show a background image while the user waits 
moviePlayerViewController.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.png"]]; 
moviePlayerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 


//show the movie 
[self presentMoviePlayerViewControllerAnimated:moviePlayerViewController]; 

[moviePlayerViewController release]; 

} 
+0

Pouvez-vous obtenir l'iPhone 3G avec iOS 4 pour lire des vidéos à distance par le biais d'autres applications? Plusieurs personnes (y compris moi-même) ont eu beaucoup de problèmes en cours d'exécution iOS 4 sur un appareil 3G. Si vous rencontrez des problèmes de stabilité dans d'autres applications, essayez de redémarrer l'appareil, puis réessayez. – pix0r

Répondre

0

Je ferais ce qui précède un peu différemment:

-(IBAction)playMedia{ 

NSString* url = [self.data objectForKey:@"url"];  

//initialize the movie player 

MPMoviePlayerViewController *tmpPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:url]]; 
self.moviePlayerViewController = tmpPlayer; 

//show a background image while the user waits 
UIColor *tmpColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.png"]]; 
self.moviePlayerViewController.view.backgroundColor = tmpColor; 

self.moviePlayerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 

//show the movie 
[self presentMoviePlayerViewControllerAnimated:self.moviePlayerViewController]; 

[tmpPlayer release]; 
[tmpColor release]; 
} 
+0

Salut est ce code fonctionne pour iOS5 dans les deux Xcode et iPhone3GS .. –

1

ok je suis arrivé vidéo pour travailler sur les iPhone 4 et iPhone 3G. Fondamentalement, le problème était le format de fichier. Je jouais un fichier .mov. Lorsque j'ai changé le format en .mp4, il fonctionne maintenant sur les deux appareils. Pas de changement de code.

Espérons que cela aidera les autres avec le même problème.

+0

je l'ai changé dans un fichier .m4v avec Quicktime, et cela a bien fonctionné. Ouvrez la vidéo dans QT10, cliquez sur Fichier-> Enregistrer sous et sélectionnez iPhone pour la sortie. Changez ensuite le code pour refléter le changement d'extension. Travaillé comme un charme! –