Подтвердить что ты не робот

API для съемки живых фотографий в iOS9

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

DOC для выпуска Apple

Живые фотографии

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

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

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

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

4b9b3361

Ответ 1

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

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

Live Photos - это функция приложения "Камера" на поддерживаемых устройствах, позволяющая сделать изображение не только одним моментом времени, но и включать движение и звук из моментов непосредственно перед и после его захвата. Объект 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

Ответ 3

В соответствии с Apple Doc:

UIImagePickerControllerLivePhoto

Представление Live Photo выбранной или захваченной фотографии.

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

Для получения содержимого движения и звука живого фото для отображения (используя класс 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]; 

}

Ответ 4

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

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