2010-05-03 21 views
5

Me enfrenta un problema en el que no puedo seleccionar videos del álbum de fotos en el dispositivo iPhone 2G/3G. La aplicación de fotos predeterminada muestra videos y es capaz de reproducirlos, lo que a su vez significa que UIImagePickerController claramente debe ser capaz de mostrar videos en el álbum de fotos y seleccionarlos.Seleccionar videos usando UIImagePickerController en 2G/3G

He codificado esto para determinar si el dispositivo es capaz de tomar una foto, grabación de vídeo, la selección de fotos y seleccionando videos:

// Check if camera and video recording are available: 
[self setCameraAvailable:NO]; 
[self setVideoRecordingAvailable:NO]; 
[self setPhotoSelectionAvailable:NO]; 
[self setVideoSelectionAvailable:NO]; 

// For live mode: 
NSArray *availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; 
NSLog(@"Available types for source as camera = %@", availableTypes); 
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
{ 
    if ([availableTypes containsObject:(NSString*)kUTTypeMovie]) 
    [self setVideoRecordingAvailable:YES]; 
    if ([availableTypes containsObject:(NSString*)kUTTypeImage]) 
    [self setCameraAvailable:YES]; 
} 

// For photo library mode: 
availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
NSLog(@"Available types for source as photo library = %@", availableTypes); 
if ([availableTypes containsObject:(NSString*)kUTTypeImage]) 
    [self setPhotoSelectionAvailable:YES]; 
if ([availableTypes containsObject:(NSString*)kUTTypeMovie]) 
    [self setVideoSelectionAvailable:YES]; 

Los registros resultantes para el dispositivo de 3G es el siguiente:

2010-05-03 19:09:09.623 xyz [348:207] Available types for source as camera = (
    "public.image" 
) 
2010-05-03 19:09:09.643 xyz [348:207] Available types for source as photo library = (
    "public.image" 
) 

Como los registros indican, para la biblioteca de fotos el equivalente de cadena de kUTTypeMovie no está disponible y por lo tanto el UIImagePickerController no aparece (o arroja una excepción si establecemos los tipos de fuente matriz que incluye kUTTypeMovie) los archivos de película en la foto biblioteca

No he probado 3GS, pero estoy seguro de que este problema no existe en él con referencia a otros hilos.

He creado la aplicación para 3.0 (base SDK) y 3.1 pero con los mismos resultados.

Esta cuestión ya se discute en el hilo: http://www.iphonedevsdk.com/forum/iphone-sdk-development/36197-uiimagepickercontroller-does-not-show-movies-albums.html

Pero no parece ser anfitrión de una solución.

¿Alguna solución a este problema?

Gracias y saludos, Raj Pawan

Respuesta

5

Como los videos siempre se comprimen después de ser recogidos (los archivos de video en bruto son muy grandes) y los modelos 2G/3G no pueden codificar/decodificar h.264, lo dejaron fuera de la API UIImagePickerController . Eso es desafortunado ya que a todos nos encantaría elegir videos en esos dispositivos también.

0

EN 3GS su trabajo perfectamente bien, y la cosa se 3Gs ha rodado después SDK 3.1 3.0 así que no tienen ninguna manipulación de las cosas relacionadas con el vídeo ..!

+0

Sí, las mismas observaciones que ya hice. Pero 3.1 no parece tener esta solución tampoco. Mira mi pregunta arriba. Ya he creado para 3.0 y 3.1 SDK para iPhone 3G, ninguno de ellos muestra videos en UIImagePickerController. –

3

La aplicación por defecto hace fotos mostrar videos y es capaz de jugar con ellos

Pero, ¿Ha probado esto? 2G/3G no puede grabar video. Por lo tanto, no puede colocar archivos de video en un selector de imágenes. ¿O estoy equivocado?

La documentación dice explícitamente: "Debido a que una fuente de medios puede no estar presente o no estar disponible, los dispositivos pueden no ser compatibles con todos los tipos de fuente". Entonces iPhone OS asume que no puede haber películas y no permite seleccionarlas. Creo que si.

+0

Hay aplicaciones como Camera Plus Pro que graban videos y los sincronizan con su carrete de la cámara. Estos videos pueden verse luego en la biblioteca de fotos. También puede transferir videos a la biblioteca de fotos usando iTunes. Yo exactamente no sé cómo. Aparte de esto, hay apis: -UISaveVideoAtPathToSavedPhotosAlbum & -UIImageWriteToSavedPhotosAlbum que hace la tarea de guardar videos en la biblioteca de fotos, estos se pueden utilizar en dispositivos 2G y 3G. ¿Ahora cómo los recogemos? –

+0

Sí, pero SDK dice: "Antes de llamar a esta función, debe llamar a la función UIVideoAtPathIsCompatibleWithSavedPhotosAlbum para determinar si es posible guardar videos en el álbum Saved Photos". Entonces puede hacerlo, pero solo si el dispositivo lo admite. Conozco las diferentes cámaras, pero no creo que sea un uso apropiado de API. – bealex

+0

Ammmm, no revisé anteriormente UIVideoAtPathIsCompatibleWithSavedPhotosAlbum, pero los videos se pueden guardar en el rollo de la cámara usando UISaveVideoAtPathToSavedPhotosAlbum directamente. Es un argumento válido entonces, idealmente los dispositivos 2G/3G no son capaces de seleccionar videos porque NO PUEDEN JUGARLOS? Sin embargo, una vez que los videos se colocan en el rollo de la cámara, la aplicación de fotos predeterminada puede seleccionar los videos y reproducirlos. –

Cuestiones relacionadas