JPGファイルとMOVファイルでライブフォトを作ってみました。
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;
最後に、ライブ写真を取得し、livePhotoView に表示します。次に、それを保存または共有しようとします。クラス UIActivityViewController を使用します。このように:
if (self.livePhoto) {
UIActivityViewController *activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:@[self.livePhotoView.livePhoto]
applicationActivities:nil];
[self presentViewController:activityViewController
animated:YES
completion:^{
// ...
}];
}
ライブ写真を共有するとき、共有するのは静止画像だけです。ライブ写真を保存することを選択すると、アルバムに何も見つかりません。これをさまざまな場所で検索します。このhttps://githubでいくつかの情報を見つけるだけです.com/genadyo/LivePhotoDemo/issues/3 . しかし、それは私の問題を解決しませんでした。
AppStore でアプリを見つけましたが、その仕組みがわかりません。https://itunes.apple.com/cn/app/livemaker-free-for-live-photo/id1053967828?mt=8