我的应用程序的一个功能是下载一个 mp4 文件并将其存储到本地手机相册。
从那以后我尝试了几种方法,结果总是一样的,它在模拟器上有效,但在实际 iPhone 上无效。Xcode 是 5.0.1 版,iPhone 4。
下面是我在使用 ASIHttpRequest 库发布之前在此处发布的最后一次尝试中应用的代码,结果仍然相同,它在模拟器上运行,但在手机本身上运行。
下载:
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:)];
下载完成后,保存到相册(在
ASIRequestDone
委托中)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兼容性列表?我在想也许是真的文件在手机上不兼容(但在模拟器上!?))