2012-01-01 18 views
3

我最近使用AVFoundation元數據在我的OS X 10.7以上版本應用程序添加到電影。由於我的目標是ARC(64位),因此QTKit.framework和Quicktime.framework不起作用。在這種情況下,我必須使用AVAssetExportPresetPassthrough編寫臨時影片,然後用它替換源文件。有沒有機會使用AVfoundation更新電影而不進行復制(如QTKit中的updateMovieFile)?

不過,蘋果拒絕了我的應用程序認爲它寫入數據了允許文件夾(我的應用程序接收電影文件拖拽通過添加元數據和刪除,所以我不知道哪裏是要保存)。 然後我怎樣才能在沒有updateMovieFile方法的情況下用更新的元數據電影替換原始電影?

有什麼在64位土地相似?任何解決方法?有什麼建議嗎?

非常感謝。

回答

2

QTKit 64位兼容,可以使用。使用ARC或不與現有框架無關,因爲ARC和MRC應用程序的運行時間相同。 ARC只是一個預處理器和編譯器步驟,與Garbage Collection不同,它不需要特殊的運行時。

將文件保存到任意文件夾中,如果您的應用程序沙箱做到這一點的方法是使用PowerBox,這是一個獨立的過程控制和顯示打開和保存對話框。如果沙盒應用程序請求一個NSOpenPanelNSSavePanel的PowerBox被自動使用。

這樣做的方式是,當用戶將文件拖到您的應用程序上時,您的應用程序將顯示一個NSSavePanel並讓用戶選擇輸出位置。 NSSavePanel實際上由PowerBox顯示,並允許您的應用程序脫離沙箱以寫入用戶選擇的文件位置。你可以配置NSSavePanel指向現有文件的位置,使用戶只需要點擊保存

我意識到這並不理想,因爲它打破了良好的拖放UI,但目前它是唯一受支持的寫入沙箱外文件的方式。

+0

感謝羅布。對不起,但我認爲ARC(OSX)**需要** 64位目標。關於保存對話框,它根本不適用於我的應用程序。您可以從任何位置拖動一堆文件,並且無法讓用戶確認每部電影。不過謝謝你的有用信息。我想知道是否有另一種方式來更新電影文件,而不必重寫它。 – rmvz3 2012-01-02 18:21:45

+0

是的,ARC需要64位(從技術上說,它實際上需要現代運行時,這就是爲什麼它可以在iOS上運行32位,但在Mac上,現代運行時僅可用於64位)。我的觀點是QTKit可以在32位和64位環境下工作。 – 2012-01-03 01:05:41

相關問題