2010-02-08 32 views
5

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.

risposta

0

Mi sono solo imbattuto in questo ... e ho trovato questo post quando cercavo una soluzione.

appare come l'unico modo per aggirare questo è quello di copiare il file nella directory della tua app, quindi aprire l'UIVideoEditorController ...

Qualcuno sa se questo UIImagePickerController video appena catturati non essere tagliato problema è un bug nel SDK o stiamo facendo qualcosa di sbagliato?

+0

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

+3

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

Problemi correlati