Ios 如何在相册中保存自制的实时照片?
我尝试使用JPG文件和MOV文件制作实时照片。如下所示:Ios 如何在相册中保存自制的实时照片?,ios,iphone,ios9,photo,phlivephoto,Ios,Iphone,Ios9,Photo,Phlivephoto,我尝试使用JPG文件和MOV文件制作实时照片。如下所示: CGSize targetSize = CGSizeZero; PHImageContentMode contentMode = PHImageContentModeDefault; __weak NSURL *videoUrl; __weak NSURL *photoUrl; // Call private API to create the live photo
CGSize targetSize = CGSizeZero;
PHImageContentMode contentMode = PHImageContentModeDefault;
__weak NSURL *videoUrl;
__weak NSURL *photoUrl;
// Call private API to create the live photo
self.livePhotoView.livePhoto = nil;
self.livePhoto = nil;
self.livePhoto = [[PHLivePhoto alloc] init];
SEL initWithImageURLvideoURL = NSSelectorFromString(@"_initWithImageURL:videoURL:targetSize:contentMode:");
if ([self.livePhoto respondsToSelector:initWithImageURLvideoURL]) {
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self.livePhoto methodSignatureForSelector:initWithImageURLvideoURL]];
[invocation setSelector:initWithImageURLvideoURL];
[invocation setTarget:self.livePhoto];
[invocation setArgument:&(photoURL) atIndex:2];
[invocation setArgument:&(videoUrl) atIndex:3];
[invocation setArgument:&(targetSize) atIndex:4];
[invocation setArgument:&(contentMode) atIndex:5];
[invocation invoke];
}
// Set the live photo
self.livePhotoView.livePhoto = self.livePhoto;
if (self.livePhoto) {
UIActivityViewController *activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:@[self.livePhotoView.livePhoto]
applicationActivities:nil];
[self presentViewController:activityViewController
animated:YES
completion:^{
// ...
}];
}
最后,我获取实时照片并在livePhotoView中显示。然后我尝试保存或共享它。我使用UIActivityViewController类。如下所示:
CGSize targetSize = CGSizeZero;
PHImageContentMode contentMode = PHImageContentModeDefault;
__weak NSURL *videoUrl;
__weak NSURL *photoUrl;
// Call private API to create the live photo
self.livePhotoView.livePhoto = nil;
self.livePhoto = nil;
self.livePhoto = [[PHLivePhoto alloc] init];
SEL initWithImageURLvideoURL = NSSelectorFromString(@"_initWithImageURL:videoURL:targetSize:contentMode:");
if ([self.livePhoto respondsToSelector:initWithImageURLvideoURL]) {
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self.livePhoto methodSignatureForSelector:initWithImageURLvideoURL]];
[invocation setSelector:initWithImageURLvideoURL];
[invocation setTarget:self.livePhoto];
[invocation setArgument:&(photoURL) atIndex:2];
[invocation setArgument:&(videoUrl) atIndex:3];
[invocation setArgument:&(targetSize) atIndex:4];
[invocation setArgument:&(contentMode) atIndex:5];
[invocation invoke];
}
// Set the live photo
self.livePhotoView.livePhoto = self.livePhoto;
if (self.livePhoto) {
UIActivityViewController *activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:@[self.livePhotoView.livePhoto]
applicationActivities:nil];
[self presentViewController:activityViewController
animated:YES
completion:^{
// ...
}];
}
当我共享实时照片时,我共享的只是静态图像。当我选择保存实时照片时,我在相册中找不到任何内容。我在许多地方搜索了此内容。我只是在其中找到一些信息。但这并没有解决我的问题
我在AppStore中发现一个应用程序可以做到这一点。但我不明白它是如何工作的。图像和电影的元数据不匹配。genadyo的swift演示如下:请阅读他的QuickTimeMov.swift和JPEG.swift。如果您有,请共享对象c解决方案。是的,谢谢。我也找到了这个。是的,只是上面的演示。我们需要添加元数据