Sto utilizzando UIImagePickerController
per registrare un video con lo sourceType
impostato su UIImagePickerControllerSourceTypeCamera
.UIImagePickerController con sorgente telecamera: il trimming video non funziona
Ho impostato il valore allowsEditing
su true in modo che il video possa essere modificato prima che il raccoglitore torni. Ma dopo aver modificato il video utilizzando l'interfaccia di ritaglio e premuto "Seleziona", ritorna solo la registrazione originale nel delegato, non nella versione ritagliata. Che cosa sto facendo di sbagliato? Sto usando iPhone OS 3.1.3. Ricordo che questo funzionava in una versione precedente, ma sembra che stia fallendo nel sistema operativo più recente. Qualsiasi aiuto è apprezzato?
A proposito, ho confermato che se la fonte del video è UIImagePickerControllerSourceTypeSavedPhotosAlbum
, il ritaglio funziona nella versione 3.1.3. Quindi tagliare con la sorgente mentre la fotocamera non funziona. Interessantemente con il rullino fotografico/album fotografico come fonte, appare un pulsante "Scegli" e subito dopo aver fatto clic su di esso, il controller visualizza un messaggio che dice "Il video viene tagliato ...". Non ricevo questo messaggio quando uso la sorgente della videocamera.
Ecco uno snippet del codice che sto utilizzando per registrare un video utilizzando la sorgente della videocamera.
- (void) recordVideo {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
picker.videoQuality = UIImagePickerControllerQualityTypeHigh;
[self presentModalViewController:picker animated:YES];
[picker release];
}
mia implementazione delegato è il seguente:
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo: (NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
self.videoPath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
...
}
Grazie mille,
kris.
Sembra intenzionale: dopo che l'utente ha modificato un elemento selezionato, ad esempio ritagliando un'immagine o tagliando un film, l'URL continua a puntare alla versione originale dell'elemento selezionato. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerControllerDelegate_Protocol/UIImagePickerControllerDelegate/UIImagePickerControllerDelegate.html#//apple_ref/doc/uid/TP40007069 – James
No, non è così semplice. Quando si seleziona un'immagine, vengono restituite sia le immagini modificate che quelle originali. E quando scegli un video con sorceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum, viene restituito un video ritagliato. A livello di osservazione, ogni volta che viene restituito un video non modificato, il dict contiene anche i tasti @ "_ UIImagePickerControllerVideoEditingStart" e @ "_ UIImagePickerControllerVideoEditingEnd" con il tempo di inizio e di fine tagliati (in secondi). Immagino che dobbiamo cercare questi e fare il taglio noi stessi (se presente) – wombat57