【发布时间】:2019-11-09 07:21:05
【问题描述】:
如果我使用通过 NSOpenPanel 获取的文件 URL,则创建一个 AVPlayerItem 并用它替换 AVPlayer:s 当前项可以正常工作。但是,如果我使用 FileManager 获取相同的文件 URL,即使没有生成错误,AVPlayer 也不会打开该文件。我什至出于调试目的对文件 URL:s 进行了“==”比较,结果为 true(使用 NSOpenPanel 获取并使用 FileManager 获取的相同文件 URL)。
我正在获取目录中视频的文件 URL:s,然后使用视频文件的名称填充 NSPopUpButton。从 NSPopUpButton 中选择一个视频应该将该视频加载到 AVPlayer 中,但即使我传递给 AVPlayerItem 的 URL:s 是正确的,这也不起作用。
有什么想法吗?
【问题讨论】:
-
未经用户同意,您不得打开任何您想使用的文件。这是开发 Cocoa 应用程序的基础知识。
-
这是有道理的 El Tomato。但是在这里,用户选择一个目录,其中 NSPopUpButton 填充有视频文件名。当用户从 NSPopUpButton 中选择一个文件时,该文件被加载。从用户的角度来看,他同意打开文件。如何告诉系统?
-
这个想法是用户可以在应用程序中过滤文件列表,并根据过滤更新带有视频文件的NSPopUpButton。
-
这是你的主意,不是 Apple 的主意。他们的想法是让用户使用 NSOpenPanel 选择文件。
-
那么有没有办法实现我想要的?