用于在iOS9中捕获实时照片的API

用于在iOS9中捕获实时照片的API,ios,swift,ios9,Ios,Swift,Ios9,我找不到任何API来捕获实时照片。我错过什么了吗 现场照片 实时照片是iOS 9的一项新功能,它允许用户捕获和编辑照片 以比传统音乐更丰富的语境重温他们最喜爱的时刻 照片。当用户按下快门按钮时,相机应用程序 与常规照片一起捕获更多内容,包括 照片前后的音频和附加帧。浏览时 通过这些照片,用户可以与之交互并回放所有内容 拍摄的内容,使照片变得栩栩如生 iOS 9.1引入了API,允许应用程序结合播放 实时照片,以及导出用于共享的数据。有新的 在Photos框架中支持从 PHImageManage

我找不到任何API来捕获实时照片。我错过什么了吗

现场照片

实时照片是iOS 9的一项新功能,它允许用户捕获和编辑照片 以比传统音乐更丰富的语境重温他们最喜爱的时刻 照片。当用户按下快门按钮时,相机应用程序 与常规照片一起捕获更多内容,包括 照片前后的音频和附加帧。浏览时 通过这些照片,用户可以与之交互并回放所有内容 拍摄的内容,使照片变得栩栩如生

iOS 9.1引入了API,允许应用程序结合播放 实时照片,以及导出用于共享的数据。有新的 在Photos框架中支持从 PHImageManager对象,用于表示 包括一张现场照片。可以使用PHLivePhotoView对象(已定义) 在PhotoUI框架中)显示实时照片的内容。 PHLivePhotoView视图负责显示图像、处理 所有用户交互,并应用视觉处理进行回放 内容

您还可以使用PhaseSetResource访问PHLivePhoto的数据 对象用于共享目的。您可以为请求一个PHLivePhoto对象 通过使用PHImageManager或 UIImagePickerController。如果您有共享扩展,您还可以 使用NSItemProvider获取PHLivePhoto对象。接受方 对于共享,您可以从 最初由发件人导出的文件


在主题演讲期间,他们提到Facebook将支持实时照片,因此我怀疑一定有一种方法可以捕获实时照片。

UIImagePickerController看起来将允许捕获实时照片

处理实时照片

Live Photos是受支持设备上的一个摄像头应用程序功能,它使图片不仅可以是一个瞬间,还可以包括拍摄前后的运动和声音。PHLivePhoto对象表示实时照片,PHLivePhotoView类提供了一个系统标准的交互式用户界面,用于显示实时照片并回放其内容。 现场照片仍然是照片当您使用图像选择器控制器捕获或选择静态图像(通过在mediaTypes数组中仅包括kUTTypeImage类型)时,作为实时照片捕获的资产仍会显示在选择器中。但是,当用户选择资源时,代理对象仅接收包含实时照片的静态图像表示的UIImage对象。 要在用户使用图像选择器捕获或选择实时照片时获得完整的运动和声音内容,必须在mediaTypes数组中同时包含kUTTypeImage和kUTTypeLivePhoto类型。有关更多信息,请参阅《UIImagePickerControllerDelegate协议参考》中的UIImagePickerControllerLivePhoto

根据苹果文件:

UIImagePickerController动态照片

所选或捕获照片的实时照片表示

现场照片是一张图片,其中包括来自现场的运动和声音 拍摄前后的瞬间。在兼容设备上 默认情况下,照相机应用程序将所有照片捕获为实时照片,但 imagePickerController:didFinishPickingImage:editingInfo:方法的 image参数仅包含静止图像表示

获取实时照片的运动和声音内容以供显示 (使用PHLivePhotoView类),包括kUTTypeImage和 kUTTypeLivePhoto允许的媒体类型中的标识符 配置图像选择器控制器。当用户选择或 捕获实时照片,editingInfo字典包含 UIImagePickerControllerLivePhoto键,带有PHLivePhoto 将照片表示为相应的值

iOS 9.1及更高版本中提供

然后

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

}

没有用于手动捕获实时照片的API(也就是说,没有类似于AVCapture API的内容,AVCapture API提供了对捕获常规照片或视频的直接控制)


UIImagePickerController
,通常提供一个用户界面,允许用户捕获照片或视频,也可以在iOS 9.1或更高版本中捕获实时照片。要允许实时照片捕获,请将image picker控制器的
mediaTypes
属性设置为同时包含
kUTTypeImage
kUTTypeLivePhoto

iOS 9中无爱,但iOS 10中提供了拍摄和编辑实时照片的API


您真的尝试过UIImagePickerController可以捕捉实时照片吗?我认为文档中没有明确说明。星期一我会在办公室试试。。。如果您能提前确认,我会将您的答案标记为正确答案并给予奖励。尽管引用了这些材料,但我看不到任何证据表明UIImagePickerController实际上允许用户拍摄实时照片。此代码(
picker.sourceType=UIImagePickerController源类型PhotoLibrary;
)用于从照片库中选择。问题是如何直接从相机上拍摄。这似乎是不可能的。你可以这么说,但这样做实际上不允许实时拍照。
# 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]; 

}