[iOS] Как конвертировать видео в LivePhoto?
Как конвертировать video
к LivePhoto
?
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
}
Спасибо.
4 ответа
Используя метод класса 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;
/// 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;
Преобразование видео — непростая задача. Процесс следующий
- сначала один URL -адрес изображения и один URL -адрес видео требуется для создания живого фото.
- добавить одни метаданные в этот файл изображения, который является идентификатором контента
- добавить те же метаданные идентификатора контента в видеофайл
- добавьте к видео другие метаданные, которые являются отметкой времени кадра для изображения, которое будет отображаться в виде эскиза (изображение, используемое на 1-м шаге)
После добавления метаданных в файл изображения и видео используйте следующий API
PHLivePhoto.request(withResourceFileURLs fileURLs: [URL], placeholderImage image: UIImage?, targetSize: CGSize, contentMode: PHImageContentMode, resultHandler: @escaping (PHLivePhoto?, [AnyHashable : Any]) -> Void) -> PHLivePhotoRequestID
Пожалуйста, проверьте этот ответ , в котором есть прекрасное объяснение необходимых метаданных для создания живого фотообъекта.
И вы можете проверить следующий проект GitHub для справки по коду.
Нет возможности конвертировать другие файлы в Live Photo
однако в новейшем iOS SDK это могут делать некоторые инструментальные приложения, например Live Studio. И, может быть, некоторые онлайн-учебники, которые объясняют, как сделать Live Photo
из других файлов, которые вы можете узнать с. Возможно, вы можете изгонять в одну сторону с iOS.
Желаю вам!