gpt4 book ai didi

ios - 应用关闭后本地保存的视频不再播放

转载 作者:行者123 更新时间:2023-11-28 21:36:44 25 4
gpt4 key购买 nike

这很奇怪,但基本上我在本地下载并保存视频,并存储 url 路径以提供给 AVPlayer 播放。

我第一次这样做时效果很好。我下载了一个文件,然后我可以随心所欲地播放它很多次,直到我退出应用程序。当我第二次启动该应用程序时,当我尝试使用完全相同的路径播放完全相同的视频时出现黑屏。

因为我使用的是模拟器,所以我可以验证视频和图片确实仍然存在于我保存它们的同一文件夹中,如果我从 Finder 中单击它们,我仍然可以播放它们。

可能是缓存问题?如果重要的话,我会在测试时将它们直接保存到 Library 目录中。

相关代码:

NSString *outputFile = [NSString stringWithFormat:@"video_%@.mp4", guid];
NSString *outputDirectory = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *tempPath = [outputDirectory stringByAppendingPathComponent:outputFile];
NSURL *fileURL = [NSURL fileURLWithPath:tempPath];
// save the video to the URL

然后我使用 NSString [fileURL path]“坚持”它(我构建它的方式,假设解决方案需要一个 NSString NSURL 转换)。

稍后我创建了一个 AVPlayerItem:

NSURL *url = [NSURL fileURLWithPath:persistedObject.contentURL];
NSLog(@"url: %@", url); // prints a valid location**
AVPlayerItem *item = [AVPlayerItem playerItemWithURL:url];

** 例如这是一个示例 url 位置

url: file:///Users/gabriel/Library/Developer/CoreSimulator/Devices/CE1FC933-808C-4003-9BE4-DEC59B787FF7/data/Containers/Data/Application/FAD072B4-B5B0-4487-8A76-57B047324A00/Library/picture_D8DEAFA5-0843-4AA3-BB32-C61E32D13579.mp4

有人建议我改用 URLForDirectory:inDomain:appropriateForURL:create:error:URLByAppendingPathComponent:,我会研究一下。但仍然很困惑为什么它会在我第一次下载它时播放,但在应用程序退出后当它是同一个文件时就不会播放。

最佳答案

你犯了一个典型的错误。你坚持完整的路径。但是完整的路径改变了。永远不要坚持完整的路径。仅保留与从 NSSearchPathForDirectoriesInDomains 获取的值相关的路径部分。

鉴于您正在做的事情,您应该只保留基本文件名 (outputFile)。然后,当应用程序启动时,您将像最初那样重新构建完整路径,但使用保留的文件名将其附加到动态获取的应用程序支持文件夹路径中。

关于ios - 应用关闭后本地保存的视频不再播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33637727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com