Estoy tratando de cargar un archivo de video en mi aplicación para iPad como AVURLAsset
, usando la carga asincrónica para esperar a que esté listo. El problema es que cuando lo ejecuto recibo un mensaje de error "genérico" completamente genérico que no tengo idea de qué hacer. El video funciona si lo entrego a un MPMoviePlayerController
, pero AVURLAsset
parece negarse a tener algo que ver con eso.AVURLAsset se niega a cargar el video
Código:
asset = [[AVURLAsset alloc] initWithURL:[NSURL URLWithString:[docPath stringByAppendingPathComponent:@"video.mov"]] options:nil];
[asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:@"tracks"] completionHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
[self composeIfReady];
});
}];
...
- (void)composeIfReady
{
NSError *error = nil;
if([asset statusOfValueForKey:@"tracks" error:&error] == AVKeyValueStatusFailed)
NSLog(@"error loading: %@", [error description]);
if(error == nil)
NSLog(@"okay awesome");
}
La salida:
error loading: Error Domain=AVFoundationErrorDomain Code=-11800 "The operation couldn’t be completed. (AVFoundationErrorDomain error -11800.)" UserInfo=0x1696f0 {NSUnderlyingError=0x169a40 "The operation couldn’t be completed. (OSStatus error -12936.)"}
-11800, por cierto, es el código de error de "error desconocido". Tipo de callejón sin salida. ¿Algunas ideas? ¿Hay algo que deba configurar antes de intentar cargar el activo?
Estoy usando fileURLWithPath y sigo recibiendo los mismos errores. – gngrwzrd
+1 Esto funciona para mí ... Muchas gracias .. –
¡Muchas gracias! Ahora me doy cuenta de que la diferencia es significativa porque necesita una URL absoluta para el archivo y, por lo tanto, la URL relativa (/ var/mobile/...) proporcionada por URLWithString no funciona. –