J'ai créé un nouveau projet avec le ViewController.m suivant. Quand je cours l'application je peux voir une boîte de l'origine/taille prévue (38, 100, 250, 163) mais elle est noire et aucune vidéo ne joue. Il y a une sortie étrange dans Xcode:Impossible de lire la vidéo avec MPMoviePlayerViewController
2012-08-23 15:36:45.559 VideoTest1[11398:c07] [MPAVController] Autoplay: Disabling autoplay for pause
2012-08-23 15:36:45.560 VideoTest1[11398:c07] [MPAVController] Autoplay: Disabling autoplay
2012-08-23 15:37:18.186 VideoTest1[11398:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
Notez que la vidéo est convertie avec Videora iPhone Converter et joue ok dans Xcode (il est donc pas un problème vidéo); le chemin vers la vidéo est ok parce que quand je spécifie démo-iPhone1 (qui n'existe pas) je reçois une exception nulle. J'ai essayé en simulateur et sur iPhone: toujours en boîte noire. Des idées?
#import "ViewController.h"
#import <MediaPlayer/MediaPlayer.h>
@interface ViewController()
@end
@implementation ViewController
- (void)moviePlaybackComplete:(NSNotification *)notification
{
MPMoviePlayerController *moviePlayerController = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController.view removeFromSuperview];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"demo-iPhone" ofType:@"mp4"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlaybackComplete:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayerController];
[moviePlayerController.view setFrame:CGRectMake(38,
100,
250,
163)];
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
Avez-vous essayé avec d'autres vidéos? Peut-être un mp4 téléchargé sur vimeo? –
Steve, la vidéo est vraiment bien parce qu'elle joue dans mon autre application avec exactement le même code. Mais ne peut toujours pas comprendre la différence. BTW j'ai ajouté la sortie Xcode. Peut-être que cela vous donnera une idée de ce qu'est le problème. – maxgrinev