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.
Ответы
Ответ 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
Ответ 2
В iOS 9 нет любви, но API-интерфейсы для съемки и редактирования Live Photos доступны в iOS 10.
Здесь разговор от WWDC обо всем этом.
Ответ 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
.