【问题标题】:UIVideoAtPathIsCompatibleWithSavedPhotosAlbum returns false when deploying on the iPhoneUIVideoAtPathIsCompatibleWithSavedPhotosAlbum 在 iPhone 上部署时返回 false
【发布时间】:2014-06-21 04:21:43
【问题描述】:

我的应用程序的一个功能是下载一个 mp4 文件并将其存储到本地手机相册中。

我已经尝试了几种方法,结果始终相同,它在模拟器上有效,但在实际 iPhone 上无效。 Xcode 版本为 5.0.1,iPhone 4。

以下是我在使用 ASIHttpRequest 库发布之前在此处发布的最后一次尝试中应用的代码,结果仍然相同,它在模拟器上运行,但在手机本身上运行。

  1. 下载:

    ASIHTTPRequest* request = [ASIHTTPRequest requestWithURL:url]; // url is the address to the mp4 file
    
    NSString* filePath = [NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), filename]; //filename is the file I save to, e.g. xxx.mp4
    
    [request setDownloadDestinationPath:filePath];
    [request setDelegate:self];
    [request setDidFinishSelector:@selector[ASIRequestDone:)];
    [request setDidFailSelector:@select[ASIRequestFail:)];
    
  2. 下载完成后保存到相册(ASIRequestDonedelegate)

    if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(filePath))
    {
        //comes to here when running in simulators
        UISaveVideoAtPathToSavedPhotosAlbum(filePath, self, @selector(video:didFinishSavingWithError:cotextInfo:),nil);
    } 
    else 
    {
        //always comes to here when running on the actual iPhone.
    }
    

我检查了pathFile是这个

/private/var/mobile/Applications/xxxxxxxxxx/tmp/xxxxx.mp4

这对我来说没问题。我没有得到的是它在模拟器上运行时工作正常,因此我不知道下一步该做什么。 (我还检查了访问相册的权限,是的,该应用程序拥有它)。

我还尝试删除兼容检查并直接进入方法UISaveVideoAtPathToSavedPhotosAlbum,它没有在委托didFinishSavingWithError上抛出任何错误。但是,视频也没有显示在相册中,我猜这是正确的,因为手机似乎说视频不兼容显示在相册中。同样,我的问题是它确实在模拟器上工作,我如何在实际的 iphone 上解决这个问题,例如为什么它认为视频不兼容?是与 mp4 本身有关还是在下载步骤中有关?接下来我可以做些什么来解决这个问题? (ps。我也可以控制mp4文件,有没有你知道的iphone上的mp4兼容性列表?我在想也许是真的文件在手机上不兼容(但在模拟器上!?))

【问题讨论】:

  • 刚刚在 android 中完成的其他应用程序上测试了相同的 mp4 并且它有效,所以不要认为它是导致问题的 mp4 格式。

标签: objective-c video ios7 download camera-roll


【解决方案1】:

找到了我的问题的答案,我希望它可以帮助遇到同样问题的人。事实证明,在将视频存储到画廊时,视频分辨率是模拟器和实际手机之间的因素;具体来说:

兼容性检查 UIVideoAtPathIsCompatibleWithSavedPhotosAlbum 在实际手机上会失败,但在模拟器上会通过给定示例剪辑 capturrd 为 1080p。在我发帖一周后,我很幸运地通过了这个链接。

What video formats are compatible with the assets library?

我通过捕获 720p 视频片段进行了类似的实验,所有文件都能够保存到图库中。奇怪的是,实际的 iphone 可以播放 1080p 的 HLS 流;但是,除非它们是 720p,否则它不会存储剪辑,无论如何对我来说都不是。令人误解的是,模拟器实际上可以做到 1080p。

【讨论】:

  • 在 iphone 6 plus 和 ios 9.3.2 上我得到 2880x2880 ok,而 2881x2881 失败。所以对于这种配置,这似乎是限制。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
相关资源
最近更新 更多