c/c++ 調用QuickTime API中的細節問題

 

Windows:

下載並安裝QuickTime SDK(官方有下載),下載安裝一個QuickTime for win,在使用SDK時會用到一個QuickTime中的dll(QTCF.dll);

Mac:

添加Cocoa.framework和QuickTime.framework,


windows,需要QuickTime安裝目錄下的QTCF.dll,以及項目設置中修改編譯選項爲 release版的靜態鏈接(項目屬性->c/c++->代碼生成->運行庫->"多線程/(MT)")

#include <QTML.h>

#include <Movies.h>

#pragma comment(lib,"QTMLClient.lib")

main()
{
初始化

InitializeQTML(0);

EnterMovies();


......sdk調用過程


註銷

ExitMovies();

TerminateQTML();
}

mac,需要設置編譯選項爲32bit(Project setting->Build->Architectures->"32-bit Intel")

#include <QuickTime/QuickTime.h>

main()
{
初始化

EnterMovies();


......sdk調用過程


註銷

ExitMovies();

}

------------------------------------------------------------------------------

打開movie關鍵函數: OpenMovieFile,NewMovieFromFile

導出movie關鍵函數:ConvertMovieToFile

函數調用沒什麼難點,具體細節及概念apple官網quicktime開發中心都很詳細,只是細節麻煩;感覺好的時間多花在了文件路徑上,QuickTime SDK中不管import 還是export 

關於文件路徑方面都用到一個 FSSpec 的數據結構,

windows上比較好處理:

int error = noErr;
char path[255] ={ 0};
strcpy (path, "c:\\demo.mov"); 
c2pstr (path);  
error = FSMakeFSSpec (0, 0L, (ConstStr255Param)fullPath, &sfFile);  

mac 下這樣不行,CocoaDev上有一段代碼可用,雖然貼到xcode上有點問題,只要略做改動就好(http://cocoadev.com/FSMakeFSSpec)






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章