我能否将实况照片放入iOS模拟器中?

13

我想创建一个展示实时照片的应用程序,但是我没有。是否有机会将实时照片放入中呢? 谢谢!


我认为你可以,但是我的Mac上没有实时照片,所以我无法测试。在GitHub上有很多项目展示如何制作实时照片。也许你可以查看这些项目以获取设计帮助。 - fsb
3个回答

11
自最初提问/回答以来,该接口已经大大改进。现在非常容易完成此操作。
  • 打开“照片”应用并找到您想要放置在模拟设备上的LivePhoto。
  • 选择照片,转到“文件”->“导出”->“导出n张未修改的原始文件...”。
  • 所保存的文件将被导出到桌面上。对于每个LivePhoto,将有两个文件。
  • 将两个文件(每个实况照片)拖到模拟器设备上。
  • LivePhotos将被创建并自动放置在模拟设备的照片库中。

enter image description here

原始回答:

我是这样做的。使用PhotosUI接口,我的应用程序请求LivePhoto。使用PHAsset给我的东西,我保存.mov文件和高质量.png图像的本地副本。这两个文件就是“LivePhoto”。在Xcode中,我连接手机后,转到“设备”,选择应用程序,单击底部的设置齿轮图标,然后选择下载容器。在Finder中,右键单击我刚下载的.xcappdata文件,选择ShowPackageContents,然后将文件写在我想要的地方。我将它们拖到应用程序中(Xcode是打开状态 - 将它们放在左侧导航器窗格上),然后它们将被添加到应用程序的捆绑包中。


1
起初我认为这与从照片应用程序拖放到模拟器是相同的。结果发现唯一使它能够工作的方法是首先按照截图中所示进行导出。谢谢。 - Enrico Susatyo
是的!照片实际上是两个文件,拖动不会同时移动它们,这确实不太直观。很高兴能帮到你! - Mozahler

2

可以将实时照片放入模拟器,您需要一个视频文件和一个图像文件(因为实时照片是这两个文件的组合)。然后使用“Photos Framework”,您可以将实时照片保存在图库中。

PHPhotoLibrary.shared().performChanges({
        let request = PHAssetCreationRequest.forAsset()

        request.addResource(with: .photo, fileURL: imageUrl, options: nil)
        request.addResource(with: .pairedVideo, fileURL: videoUrl, options: nil)


    }) { (success, error) in

        print(success)
        print(error?.localizedDescription ?? "error")
    }

1
我发现的唯一方法比较笨拙:将实况照片放入iCloud照片流中,然后将模拟器连接到您的iCloud帐户。 然后,实况照片将在模拟器的照片库中可用。
正如您所预期的那样,“获取实况照片…”步骤可能有些棘手 - 您可能需要一个带有iPhone 6s/6s+的朋友向您发送iMessage。 尽管某些服务(如Facebook和Google Photos)支持应用内查看实况照片,但它们似乎不支持下载实况照片并保留其实况性质到您的照片库中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接