2015-09-30 12 views
21

Non riesco a trovare alcuna API per catturare foto in diretta. Ho dimenticato qualcosa?API per acquisire foto dal vivo in iOS9

Apple release DOCs

Foto dal vivo

Foto dal vivo è una nuova funzionalità di iOS 9 che consente agli utenti di catturare e rivivere i loro momenti preferiti con il contesto più ricco di tradizionali foto. Quando l'utente preme il pulsante di scatto, l'app Fotocamera acquisisce molti più contenuti insieme alla foto normale, incluso l'audio e i fotogrammi aggiuntivi prima e dopo la foto. Quando navighi su attraverso queste foto, gli utenti possono interagire con loro e riprodurre tutti i contenuti catturati, rendendo le foto prendere vita.

iOS 9.1 introduce API che consentono alle app di incorporare la riproduzione di Live Photos, nonché di esportare i dati per la condivisione. È disponibile il nuovo supporto nel framework Photos per recuperare un oggetto PHLivePhoto dall'oggetto PHImageManager, che viene utilizzato per rappresentare tutti i dati che comprende una Live Photo. È possibile utilizzare un oggetto PHLivePhotoView (definito nel framework PhotosUI) per visualizzare i contenuti di una Live Photo. La vista PHLivePhotoView si occupa della visualizzazione dell'immagine, della gestione di dell'interazione utente e dell'applicazione dei trattamenti visivi per riprodurre il contenuto .

È inoltre possibile utilizzare PHAssetResource per accedere ai dati di un oggetto PHLivePhoto a scopo di condivisione. Puoi richiedere un oggetto PHLivePhoto per una risorsa nella libreria fotografica dell'utente utilizzando PHImageManager o UIImagePickerController. Se si dispone di un'estensione di condivisione, è possibile anche ottenere oggetti PHLivePhoto utilizzando NSItemProvider. Sul lato ricevente di una condivisione, è possibile ricreare un oggetto PHLivePhoto dal set di file originariamente esportati dal mittente.

Durante il keynote, hanno menzionato che Facebook supporterà Live Photos, quindi sospetto che ci sia un modo per catturare le foto in diretta.

risposta

7

UIImagePickerController sembra che consenta l'acquisizione di foto dal vivo.

Operazioni con la foto

Foto Live è una funzione della fotocamera app sui dispositivi supportati, consentendo una foto per essere non solo un singolo momento nel tempo ma di includere il movimento e il suono dai momenti subito prima e dopo la sua cattura. Un oggetto PHLivePhoto rappresenta una Live Photo e la classe PHLivePhotoView fornisce un'interfaccia utente interattiva standard di sistema per la visualizzazione di una Live Photo e la riproduzione del suo contenuto. Le foto dal vivo sono ancora foto. Quando si utilizza un controller di selezione immagini per acquisire o scegliere fermi immagine (includendo solo il tipo kUTTypeImage nell'array mediaTypes), le risorse catturate come Foto Live appaiono ancora nel selettore. Tuttavia, quando l'utente sceglie una risorsa, l'oggetto delegato riceve solo un oggetto UIImage contenente una rappresentazione di immagini fisse della Live Photo. Per ottenere il pieno movimento e il contenuto audio quando l'utente acquisisce o sceglie una Live Photo con il selettore di immagini, è necessario includere sia i tipi kUTTypeImage che kUTTypeLivePhoto nell'array mediaTypes. Per ulteriori informazioni, vedere UIImagePickerControllerLivePhoto in UIImagePickerControllerDelegate Protocol Reference.

https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIImagePickerController_Class/index.html#//apple_ref/occ/cl/UIImagePickerController

+0

Hai veramente provare che UIImagePickerController in grado di catturare foto dal vivo? Non penso che sia chiaro nella documentazione. Lo proverò in ufficio lunedì ... Se puoi confermare prima, segnerò la tua risposta come corretta e ti darò la taglia. –

+0

Nonostante il materiale quotato, non vedo alcuna prova che UIImagePickerController consenta effettivamente all'utente di scattare una foto live. – matt

0

Secondo di Apple Doc:

UIImagePickerControllerLivePhoto

The Photo rappresentazione dal vivo della foto selezionata o catturati.

Una foto dal vivo è una foto, che include movimento e audio dai momenti poco prima e dopo la sua cattura. Sui dispositivi compatibili, l'app Fotocamera acquisisce tutte le foto come Foto Live per impostazione predefinita, ma il parametro imagePickerController: didFinishPickingImage: editingInfo: metodo contiene solo la rappresentazione dell'immagine statica.

Per ottenere il movimento e contenuto sonoro di una foto dal vivo per la visualizzazione (utilizzando la classe PHLivePhotoView), includere il kUTTypeImage e kUTTypeLivePhoto identificatori dei tipi di supporti consentiti quando configurazione di un controller immagine raccoglitrice. Quando l'utente seleziona o acquista una Live Photo, il dizionario editInfo contiene la chiave UIImagePickerControllerLivePhoto, con una rappresentazione PHLivePhoto della foto come valore corrispondente.

Disponibile in iOS 9.1 e versioni successive.

// create an image picker controller instance 
    UIImagePickerController *picker = [[UIImagePickerController alloc]init]; 
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    picker.allowsEditing = NO; 
    picker.delegate = self; 

    // make sure we include Live Photos (otherwise we'll only get UIImages) 
    NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto]; 
    picker.mediaTypes = mediaTypes; 

    // bring up the picker 
    [self presentViewController:picker animated:YES completion:nil]; 

E poi

# pragma mark - UIImagePickerController Delegate 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 

// check if this is a Live Image, otherwise present a warning 
    PHLivePhoto *photo = [info objectForKey:UIImagePickerControllerLivePhoto]; 
    if (!photo) { 
     [self notLivePhotoWarning]; 
     return; 
    } 
// create a Live Photo View 
    PHLivePhotoView *photoView = [[PHLivePhotoView alloc]initWithFrame:rect]; 
    photoView.livePhoto = [info objectForKey:UIImagePickerControllerLivePhoto]; 

} 
+1

Questo codice ('picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;') è per la selezione dalla galleria fotografica. La domanda è come catturare direttamente dalla fotocamera. Questo sembra non essere possibile. –

-1

Non c'è API per la cattura manuale di Live Foto (vale a dire, nulla analogo alle API AVCapture che offrono un controllo diretto per la cattura di foto normali o video).

UIImagePickerController, che normalmente presenta un'interfaccia utente che consente all'utente di catturare una foto o un video, può anche acquisire foto dal vivo in iOS 9.1 o successive. Per consentire l'acquisizione di Live Photo, impostare la proprietà mediaTypes del controller di selezione immagine per includere sia kUTTypeImage e kUTTypeLivePhoto.

+0

Si può dire che, ma farlo in effetti non consente l'acquisizione di foto dal vivo. – matt

Problemi correlati