2010-11-09 29 views
4

J'ai une application qui se charge pendant un film de 2 secondes. Actuellement, l'application est sur le magasin et a tous les contenus statiques rétine affichage compatible, sauf cette vidéo. J'ai une vidéo encodée en 960x640 mp4 h.264 pour l'affichage de la rétine et il fonctionne bien dans les simulateurs iPhone (oui, haute résolution, pas 480x320) et iPhone4. mais il ne semble tout simplement pas jouer sur mon iPod Touch 3rd Gen sous iOS4. Je n'ai pas encore pu tester sur l'écran physique de la rétine.Comment rendre l'affichage rétine des ressources vidéo conforme?

Il ne m'est jamais venu à l'esprit que peut-être MPMoviePlayerController pourrait ne pas supporter plus de 480x320, mais les docs le disent.

http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/MPMoviePlayerController/MPMoviePlayerController.html

Je sais ce plus sonne probablement comme un autre @ 2x solution, mais cela ne semble pas fonctionner non plus.

Des suggestions pour obtenir cette vidéo haute résolution pour les deux écrans? Je peux poster du code si nécessaire.


Pour référence, voici la solution:

MPMoviePlayerController * movieController;

if ([[UIScreen mainScreen] scale] == 2.0) { 
    movieController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"highRes" ofType:@"mp4"]]]; 
} else { 
    movieController = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"lowRes" ofType:@"m4v"]]]; 
} 

Répondre

2

Je suggère d'utiliser la vérification de code ici pour fournir votre lecteur multimédia avec le bon fichier vidéo.

+0

En revenant à cette question, je suppose que je ne l'ai pas très bien spécifié. Le problème que je voyais était que la vidéo haute résolution ne jouait pas, mais je suis venu à accepter que, sauf si vous avez l'affichage de la rétine, les vidéos de haute résolution ne vont pas jouer. Le fait qu'il a joué sur le simulateur est probablement un coup de chance comme beaucoup d'autres choses, où l'ordinateur prend en charge le jeu, donc c'est le cas. Je vais utiliser la vérification de code du type if (scale == 2) videoFile = haute résolution else videoFile = low-res. – TahoeWolverine

+0

Il existe des limites supérieures sur le matériel des appareils plus anciens, chacun étant légèrement différent. Le résultat est simplement que la vidéo ne joue pas si elle dépasse les limites. – MoDJ