Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 有没有机会在不复制的情况下使用AVfoundation更新电影(如QTKit中的updateMovieFile)?_Macos_Cocoa_Metadata_Avfoundation_Movie - Fatal编程技术网

Macos 有没有机会在不复制的情况下使用AVfoundation更新电影(如QTKit中的updateMovieFile)?

Macos 有没有机会在不复制的情况下使用AVfoundation更新电影(如QTKit中的updateMovieFile)?,macos,cocoa,metadata,avfoundation,movie,Macos,Cocoa,Metadata,Avfoundation,Movie,我最近使用AVFoundation在我的OS X 10.7+应用程序中将元数据添加到电影中。由于我的目标是ARC(64位),QTKit.framework和Quicktime.framework将无法工作。在这个场景中,我必须使用AVAssetExportPresetPassthrough编写一个临时电影,然后用它替换源文件 然而,苹果拒绝了我的应用程序,理由是它从允许的文件夹中写入数据(我的应用程序接收电影文件,通过拖放添加元数据,所以我不知道要保存到哪里)如果没有updateMovieFil

我最近使用AVFoundation在我的OS X 10.7+应用程序中将元数据添加到电影中。由于我的目标是ARC(64位),QTKit.framework和Quicktime.framework将无法工作。在这个场景中,我必须使用AVAssetExportPresetPassthrough编写一个临时电影,然后用它替换源文件

然而,苹果拒绝了我的应用程序,理由是它从允许的文件夹中写入数据(我的应用程序接收电影文件,通过拖放添加元数据,所以我不知道要保存到哪里)如果没有updateMovieFile方法,如何用更新的元数据电影替换原始电影?

64位land中是否有类似的功能?。有解决办法吗?。有什么建议吗

非常感谢。

QTKit兼容64位,可以使用。ARC的使用与否对现有框架没有影响,因为ARC和MRC应用程序的运行时是相同的。ARC只是一个预处理器和编译器步骤,与垃圾收集不同,它不需要特殊的运行时

要将文件保存到任何文件夹,如果您的应用程序被沙箱化,则可以使用PowerBox,这是一个单独的过程,用于控制和显示“打开”和“保存”对话框。如果沙盒应用程序请求
NSOpenPanel
NSSavePanel
,电源盒将自动使用

其工作方式是,当用户将文件拖到应用程序上时,应用程序将显示一个
NSSavePanel
,并让用户选择输出位置。
NSSavePanel
实际上是由电源盒显示的,它允许您的应用程序从沙盒中跳出,写入用户选择的文件位置。您可以将
NSSavePanel
配置为指向现有文件的位置,以便用户只需单击Save


我意识到这并不理想,因为它破坏了良好的拖放UI,但目前它是唯一受支持的在沙箱之外写入文件的方式。

谢谢Rob。抱歉,但我认为ARC(OSX)需要64位目标。关于“保存”对话框,它根本不适用于我的应用程序。从任何位置拖动一堆文件,要求用户确认每一部电影都是毫无意义的。谢谢你的有用信息。我想知道是否有其他方法可以更新电影文件而不必重写它。是的,ARC需要64位(从技术上讲,它实际上需要现代运行时,这就是为什么它在iOS上以32位运行,但在Mac上,现代运行时仅以64位可用)。我的观点是,QTKit将在32位和64位环境中工作。