2

如何将 a 转换video为 a LivePhoto

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {

}

谢谢你。

4

4 回答 4

0

使用 PHLivePhoto 类方法,您可以将任何 MOV 视频创建为实时照片

+(PHLivePhotoRequestID)requestLivePhotoWithResourceFileURLs:(NSArray<NSURL *> *)fileURLs placeholderImage:(UIImage *__nullable)image targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode
 resultHandler:(void(^)(PHLivePhoto *__nullable livePhoto, NSDictionary *info))resultHandler;
于 2016-05-02T13:33:11.823 回答
0

转换视频是一项有点棘手的任务。过程如下

  1. 制作现场照片需要第一个imageUrl和一个videoUrl
  2. 将一个元数据添加到作为内容标识符的图像文件
  3. 将相同的内容标识符元数据添加到视频文件
  4. 将另一个元数据添加到视频中,这是将显示为缩略图的图像的帧时间戳(第一步中使用的图像)

在图像和视频文件中添加元数据后,使用以下 api

PHLivePhoto.request(withResourceFileURLs fileURLs: [URL], placeholderImage image: UIImage?, targetSize: CGSize, contentMode: PHImageContentMode, resultHandler: @escaping (PHLivePhoto?, [AnyHashable : Any]) -> Void) -> PHLivePhotoRequestID

请检查这个答案,它对制作实时照片对象所需的元数据有很好的解释。

您可以查看以下 GitHub 项目以获取代码参考。

于 2021-03-29T08:13:52.813 回答
0
/// Requests a Live Photo from the given resource URLs. The result handler will be called multiple times to deliver new PHLivePhoto instances with increasingly more content. If a placeholder image is provided, the result handler will first be invoked synchronously to deliver a live photo containing only the placeholder image. Subsequent invocations of the result handler will occur on the main queue.
//  The targetSize and contentMode parameters are used to resize the live photo content if needed. If targetSize is equal to CGRectZero, content will not be resized.
//  When using this method to provide content for a PHLivePhotoView, each live photo instance delivered via the result handler should be passed to -[PHLivePhotoView setLivePhoto:].
+ (PHLivePhotoRequestID)requestLivePhotoWithResourceFileURLs:(NSArray<NSURL *> *)fileURLs placeholderImage:(UIImage *__nullable)image targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode resultHandler:(void(^)(PHLivePhoto *__nullable livePhoto, NSDictionary *info))resultHandler;
于 2016-01-14T09:33:25.107 回答
-4

无法将其他文件转换为Live Photo最新的 iOS SDK,但是一些工具应用程序可以做到这一点,例如Live Studio。并且可能有一些在线教程解释了如何Live Photo从其他文件中制作,您可以从中学习。也许你可以用 iOS 来研究一种方法。

祝你!

于 2016-01-14T09:49:14.237 回答