小编Fis*_*les的帖子

错误域= NSCocoaErrorDomain代码= -1"(null)"将.mov移动到相机胶卷时

我有一个奇怪的问题,将.mov我的应用程序创建的文件从文档文件夹移动到相机胶卷.一点背景:

该应用程序制作时间推移电影.它专门用于具有1200万像素4032x3024传感器的设备.它在应用程序的文档文件夹中创建了电影.电影可以保存为4k或HD.它们也可以保存为整个传感器的4:3宽高比电影,或传感器的16:9裁剪.如果用户希望将电影存储在设备的相机胶卷中,则可以设置该选项.尝试将全尺寸电影(4032x3024)从应用程序的文档文件夹移动到相机胶卷时存在问题.我收到此错误:

错误域= NSCocoaErrorDomain代码= -1"(null)"

电影很好,它仍然坐在文档的文件夹中.它无法复制到相机胶卷.如果我通过相同的代码执行相同的操作与任何其他大小,没有问题.一个4:3高清(1440x1080)工作正常,16:9高清(1920x1080)工作正常,16:9 4k(3880x2160)工作正常.当我尝试移动它时,它只是4:3 4k(4032x3024)产生此错误.

这是移动的代码:

PHPhotoLibrary.shared().performChanges({
            PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: cameraRollURL!)
Run Code Online (Sandbox Code Playgroud)

该URL正常,因为它可以很好地与其他大小一起使用.

ios swift phphotolibrary

10
推荐指数
1
解决办法
2577
查看次数

iPhone和Apple Watch不共享App组

我已经为这个问题拉了两天了。我在iPhone应用程序中生成了一个小电影文件,该文件要从iPhone发送以在Apple Watch上播放。作为概念证明,我在Apple Watch App捆绑包中放置了一个类似的.mov,并且可以毫无问题地播放它。因此,我想了想,现在,当我想向手表发送一个新的小片段时,我将其放在App Group Shared容器中,然后从那里访问它,而不是从Bundle中访问它。不!

我经历过成千上万的SO职位,尝试了许多不同的方法,但没有达到预期的效果。

在您询问之前,我已对应用程序组进行了多次重做,从iTunes Connect中删除了旧的应用程序,重新生成了配置文件,多次清理了目标,多次删除了DerivedData,删除了应用程序并多次启动,并且几乎尝试了所有细微的调整并修复了我在SO上找不到的内容,但没有任何帮助。

我确实认为我知道问题出在哪里,但不知道如何解决。

这是我在iPhone App和Watch App中都使用的代码,以获取共享容器的路径(如果是从Watch端,则此代码段):

let fileManager = FileManager.default
    let sharedContainer = fileManager
        .containerURL(
            forSecurityApplicationGroupIdentifier: "group.com.mycompany.myappname")

    let dirPath = sharedContainer?.path
     sharedFilePathOnWatch = (dirPath! as NSString).appendingPathComponent("watchPreview.mov")

    print ("Shared File Path on Watch: \(sharedFilePathOnWatch)")
    print ("Shared File Path from iPhone: \(sharedFilePath)")
Run Code Online (Sandbox Code Playgroud)

打印语句显示了我从iPhone(通过Watch Connectivity)发送到手表的共享文件路径以及Watch App解析的共享路径。

当运行以下命令时,我得到的是:

监视中的共享文件路径:/private/var/mobile/Containers/Shared/AppGroup/94AA7797-528D-4E96-9623-23285BE0742B/watchPreview.mov

iPhone的共享文件路径:/private/var/mobile/Containers/Shared/AppGroup/4D43C314-CCBD-4861-BF90-69A8AC71198C/watchPreview.mov

现在,我期望只有一个共享容器,并且iPhone和Watch都应该解析相同的路径,但事实并非如此。我还注意到,在多次运行中,这两个应用程序的这些路径保持不变。这并不是我每次怀疑都会在每次运行时更改的动态地址。

作为使此功能发挥作用的最后一次尝试,我发现由于我有通向iPhone上的共享容器和Apple Watch上的共享容器的路径,也许我可以将文件从一个移到另一个,因为,他们应该共享。但是,即使这样也不行。

因此,主要问题是:

  1. 为什么我要解析共享应用程序上的两条不同路径
  2. 我如何才能将小电影文件从iPhone传输到Apple Watch

iphone ios swift ios-app-group watchkit

3
推荐指数
1
解决办法
1728
查看次数

标签 统计

ios ×2

swift ×2

ios-app-group ×1

iphone ×1

phphotolibrary ×1

watchkit ×1