我在我的应用程序中录制视频并将其写入临时目录,以允许用户通过UIActivityViewController共享它。视频可以在应用程序中成功播放,通过UIActivityViewController可以成功通过消息发送,共享到Facebook,并保存到相机胶卷。但是当我尝试通过WhatsApp分享时,我收到以下错误:
Failed to determine whether URL /private/var/mobile/Containers/Data/Application/E7F57458-A5F9-44CB-86FA-ACC4309C7473/tmp/65CB72B3-373E-42F2-8A80-9888E00C2268.mp4 (n) is managed by a file provider
我无法找到有关此错误的更多信息。有谁知道为什么会这样?
答案 0 :(得分:1)
找到了解决方法:
我正在打开一个UIActivityViewController,其视频网址和一个字符串为activityItems
。仅传递视频网址可解决WhatsApp无法识别视频的问题。无法传递文本很烦人,但是至少现在有视频了。
不起作用:
UIActivityViewController(activityItems: [url, "Check out my video!"], applicationActivities: nil)
可以工作:
UIActivityViewController(activityItems: [url], applicationActivities: nil)
答案 1 :(得分:0)
我有同样的错误。实际上发生了什么-每个应用程序运行文件的路径都不相同,但是我不记得为什么,我不仅保存文件名-而是保存整个路径。尝试阅读时很合理-我什么也不会得到。示例-如果我在每次运行应用时都保存文件:
/var/mobile/Containers/Data/Application/1265C296-F2B1-44D6-AD3D-6F2DD59557D3/Documents/what.jpeg
/var/mobile/Containers/Data/Application/B2B53592-B327-48E9-BF70-BE2826022271/Documents/what.jpeg
/var/mobile/Containers/Data/Application/2505B73F-27EF-4B5C-8D21-EB49A45ABE99/Documents/what.jpeg
正确的做法-使用FileManager
中的文档文件夹路径,您可以找到更多信息here
+ (NSURL *)getDocumentsDirectoryPath {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]lastObject];
}
答案 2 :(得分:0)
我在模拟器上运行应用程序时遇到了同样的问题。但是,当我在真实设备上运行该应用程序时,它按预期运行。