2015-09-30 3 views
21

Я не могу найти API для съемки живых фотографий. Я что-то пропустил?API для захвата живых фотографий в iOS9

Apple release DOCs

Живых Фотографии

Живые Фотографии новая особенность прошивка 9, что позволяет пользователям захватывать и пережить свои любимые моменты с более богатым контекстом, чем традиционная фотографии. Когда пользователь нажимает кнопку спуска затвора, приложение камеры захватывает гораздо больше контента вместе с обычной фотографией, включая аудио и дополнительные кадры до и после фотографии. При просмотре через эти фотографии пользователи могут взаимодействовать с ними и воспроизводить все записанное содержимое, что делает фотографии ожившими.

В iOS 9.1 представлены API, которые позволяют приложениям включать воспроизведение Живых фотографий, а также экспортировать данные для совместного использования. Существует новая поддержка в фреймворке «Фотографии» для извлечения объекта PHLivePhoto из объекта PHImageManager , который используется для представления всех данных, которые содержит Live Photo. Вы можете использовать объект PHLivePhotoView (определенный в фреймворке PhotosUI) для отображения содержимого Live Photo. Представление PHLivePhotoView заботится о отображении изображения, обращаясь к всем пользовательским взаимодействиям и применяя визуальные обработки для воспроизведения контента.

Вы также можете использовать PHAssetResource для доступа к данным объекта PHLivePhoto для совместного использования. Вы можете запросить объект PHLivePhoto для актива в библиотеке фотографий пользователя с помощью PHImageManager или UIImagePickerController. Если у вас есть расширение общего доступа, вы также можете получить объекты PHLivePhoto с помощью NSItemProvider. На принимающей стороне общего ресурса вы можете воссоздать объект PHLivePhoto из набора файлов , первоначально экспортированных отправителем.

Во время лейтмотива они упомянули, что Facebook будет поддерживать Живые фотографии, поэтому я подозреваю, что должен быть способ захватить Живые фотографии.

ответ

7

UIImagePickerController выглядит так, что это позволит захватывать живые фотографии.

Работа с Живыми Фотографиями

Живых Фотографиями особенность приложения камеры на поддерживаемых устройствах, что позволяет картинку, чтобы быть не только один момента во время, но включить движение и звук из моментов до и после его захват. Объект PHLivePhoto представляет собой Live Photo, а класс PHLivePhotoView представляет собой интерактивный пользовательский интерфейс с системным стандартом для отображения Live Photo и воспроизведения его содержимого. Живые фотографии - это фотографии. Когда вы используете контроллер выбора изображений для захвата или выберите неподвижные изображения (включив только тип kUTTypeImage в массив mediaTypes), активы, которые были захвачены как «Живые фотографии», по-прежнему отображаются в сборщике. Однако, когда пользователь выбирает актив, ваш объект-делегат получает только объект UIImage, содержащий неподвижное изображение Live Photo. Для получения полного содержимого движения и звука, когда пользователь захватывает или выбирает Live Photo с помощью устройства выбора изображений, вы должны включить в массив mediaTypes как типы kUTTypeImage, так и kUTTypeLivePhoto. Для получения дополнительной информации см. UIImagePickerControllerLivePhoto в UIImagePickerControllerDelegate Protocol Reference.

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

+0

ли вы на самом деле попробовать, что UIImagePickerController может захватить живые фотографии? Я не думаю, что это ясно в документации. Я попробую его в офисе в понедельник ... Если вы можете подтвердить это раньше, я буду отмечать ваш ответ как правильный и дать вам щедрость. –

+0

Несмотря на цитируемый материал, я не вижу никаких доказательств того, что UIImagePickerController фактически разрешит пользователю снимать живое фото. – matt

0

Согласно Apple, Doc:

UIImagePickerControllerLivePhoto

Живая фотография представление выбранного или фотоснимку.

A Live Photo - это изображение, которое включает в себя движение и звук от моментов незадолго до и после его захвата. На совместимых устройствах приложение Camera фиксирует все фотографии в виде живых фотографий по умолчанию, но параметр изображения imagePickerController: didFinishPickingImage: editingInfo: method содержит только представление неподвижного изображения.

Чтобы получить движение и звуковое содержание живой фотографии для отображения (с использованием класса PHLivePhotoView), включают в себя kUTTypeImage и kUTTypeLivePhoto идентификаторов в разрешенных типах носителей при настройки контроллера сборщика изображения. Когда пользователь выбирает или захватывает Live Photo, словарь editInfo содержит ключ UIImagePickerControllerLivePhoto с представлением фотографии PHLivePhoto как соответствующее значение.

Доступен в iOS 9.1 и новее.

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

А потом

# 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

Этот код ('picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;') предназначен для выбора из фотогалереи. Вопрос заключается в том, как захватывать непосредственно с камеры. Это кажется невозможным. –

-1

Там нет API для ручного захвата живых фотографий (то есть, ничего аналогично API, AVCapture, которые предлагают прямое управление для захвата регулярных фото или видео).

UIImagePickerController, который обычно представляет пользовательский интерфейс, позволяющий пользователю снимать фото или видео, также может захватывать Live Photos в iOS 9.1 или новее. Чтобы разрешить съемку в режиме Live Photo, установите для устройства mediaTypes устройство выбора элемента изображения, которое должно содержать как kUTTypeImage, так и kUTTypeLivePhoto.

+0

Вы можете сказать это, но делать это на самом деле не разрешает съемку в реальном времени. – matt

Смежные вопросы