5 Stimmen

Videos auswählen mit UIImagePickerController in 2G/3G

Ich stehe vor einem Problem, bei dem ich keine Videos aus dem Fotoalbum im iPhone 2G/3G-Gerät auswählen kann. Die Standard-Fotos-Anwendung zeigt Videos und ist in der Lage, sie abzuspielen, was wiederum bedeutet, dass UIImagePickerController eindeutig in der Lage sein sollte, Videos im Fotoalbum anzuzeigen und sie auszuwählen.

Ich habe dies kodiert, um festzustellen, ob das Gerät in der Lage ist, ein Foto zu schießen, ein Video aufzunehmen, Fotos auszuwählen und Videos auszuwählen:

 // 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];

Die resultierenden Protokolle für 3G-Geräte sehen wie folgt aus:

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"
)

Wie in den Protokollen angegeben, ist das String-Äquivalent von kUTTypeMovie für die Fotobibliothek nicht verfügbar und daher zeigt der UIImagePickerController die Filmdateien in der Fotobibliothek nicht an (oder löst eine Ausnahme aus, wenn wir das Array der Quelltypen festlegen, das kUTTypeMovie enthält).

Ich habe nicht für 3GS getestet, aber ich bin sicher, dass dieses Problem nicht in ihm mit Bezug auf andere Threads existieren.

Ich habe die Anwendung sowohl für 3.0 (Basis-SDK) als auch für 3.1 erstellt, aber mit denselben Ergebnissen.

Dieses Thema wurde bereits in diesem Thread erörtert: http://www.iphonedevsdk.com/forum/iphone-sdk-development/36197-uiimagepickercontroller-does-not-show-movies-albums.html

Aber es scheint keine Lösung zu sein.

Gibt es Lösungen für dieses Problem?

Vielen Dank und herzliche Grüße, Raj Pawan

5voto

Rafael Nobre Punkte 5000

Da die Videos nach der Auswahl immer komprimiert werden (die Rohdateien des Videorekorders sind sehr groß) und die 2G/3G-Modelle nicht in der Lage sind, h.264 per Hardware zu kodieren/dekodieren, wurde dies aus der UIImagePickerController-API herausgenommen. Das ist bedauerlich, da wir alle gerne auch auf diesen Geräten Videos auswählen würden.

3voto

bealex Punkte 9994

Die Standardanwendung für Fotos zeigt Videos an und kann sie abspielen

Aber wie haben Sie das getestet? 2G/3G kann keine Videos aufzeichnen. Sie können also keine Videodateien in einen Bildsucher einfügen. Oder liege ich da falsch?

In der Dokumentation wird ausdrücklich darauf hingewiesen: "Da eine Medienquelle möglicherweise nicht vorhanden oder nicht verfügbar ist, unterstützen Geräte möglicherweise nicht immer alle Quellentypen." Das iPhone OS geht also davon aus, dass es keine Filme geben kann und erlaubt es nicht, diese auszuwählen. Ich denke schon.

0voto

Arpan Punkte 78

ON 3GS seine Arbeit völlig in Ordnung, und die Sache ist 3Gs hat nach SDK 3.1 gerollt, so 3.0 haben keine Handhabung der Video-bezogenen Dinge !

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X