Creé un proyecto nuevo con el siguiente ViewController.m. Cuando ejecuto la aplicación, puedo ver un cuadro del origen/tamaño esperado (38, 100, 250, 163) pero es negro y no se reproduce video. Hay una extraña salida en Xcode:No se puede reproducir video con 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)
Tenga en cuenta que el video se convierte con Videora iPhone Converter y juega bien en Xcode (lo que no es un problema de vídeo); el camino al video está bien porque cuando especifico demo-iPhone1 (que no existe) obtengo una excepción nula. Intenté en Simulator y en iPhone: siempre caja negra. ¿Algunas ideas?
#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
Ha intentado con cualquier otro video. Tal vez un mp4 descargado de vimeo? –
Steve, el video está realmente bien porque se reproduce en mi otra aplicación con exactamente el mismo código. Pero aún no puedo entender la diferencia. Por cierto, agregué la salida de Xcode. Tal vez te dará una idea de cuál es el problema. – maxgrinev