ios - ver - No se puede reproducir el archivo de video MP4 de mainBundle
formato video iphone 6 (7)
Xcode 9
Aquí hay una imagen actualizada.
Vaya a Crear fases> Copiar recursos de paquete y vea si su archivo está allí. Si no es así, puede agregarlo presionando el botón "+".
Así que estoy tratando de reproducir un sencillo archivo de video de animación de introducción que he arrastrado a mi proyecto en XCode y, por lo tanto, debería poder reproducirlo desde mainBundle, ¿verdad?
Con este código:
NSURL *urlString = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"introvideo" ofType:@"mp4"]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:urlString];
[player play];
Recibo este mensaje de error: * Aplicación de finalización debido a una excepción no detectada ''NSInvalidArgumentException'', razón: ''* - [NSURL initFileURLWithPath:]: parámetro de cadena nulo''
¡Cualquier ayuda sería genial!
Debe verificar si ese video está disponible en el paquete de recursos de su aplicación.
Como mencionó you getting this error message: * Terminating app due to uncaught exception ''NSInvalidArgumentException'', reason: ''* -[NSURL initFileURLWithPath:]: nil string parameter
.
Simplemente indica que el problema está en el resourcePath, significa que no existe tal archivo en Resource Bundle. Es por eso que pathForResource
devuelve una ruta nil
.
Debe volver a colocar ese archivo de video y asegurarse de que ese archivo exista en el paquete de recursos.
Entonces deberías ir al frente con el código como Rehan
también publicado.
NSURL *url = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov" inDirectory:@""]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[player view] setFrame:[self.view bounds]]; // Frame must match parent view
[self.view addSubview:[player view]];
[player play];
[player release];
Espero que te valga la pena.
Gracias
Esto significa que su código no puede encontrar su archivo introvideo.mp4. Asegúrese de haber agregado exitosamente ese archivo a su paquete. Puede verificar la configuración de su proyecto: Copiar Recurso de paquete.
Parece que pathForResource: ofType: devuelve nil. Mira esto
- este archivo se agrega a la fase de compilación "copiar recursos";
- no cometió ningún error en el nombre del archivo: las rutas en el dispositivo distinguen entre mayúsculas y minúsculas.
Puse un directorio completo de "Sonidos" en el proyecto y lo agregué a la sección "Copiar recursos del paquete". Funcionaba bien, pero luego comenzó a fallar.
La solución era anteponer el nombre del directorio a los nombres de archivo. Por ejemplo, esto no funcionó:
SKAction.playSoundFileNamed("crash.caf", waitForCompletion: false)
... pero esto funcionó:
SKAction.playSoundFileNamed("Sounds/crash.caf", waitForCompletion: false)
Tu código no es correcto Por favor cambie según lo siguiente. Todavía copie su video en los recursos de su paquete.
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"MacBook Pro with Retina Display" ofType:@"m4v"]];
MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:playercontroller];
playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[playercontroller.moviePlayer play];
[playercontroller release];
playercontroller = nil;
NSLog(@"Video is Playing");
NSURL *url = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov" inDirectory:@""]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[player view] setFrame:[self.view bounds]]; // Frame must match parent view
[self.view addSubview:[player view]];
[player play];
[player release];