c/c++ 调用QuickTime API中的细节问题

来源:互联网 发布:mac显示器有寿命吗? 编辑:程序博客网 时间:2024/05/16 14:03

 

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)






0 0
原创粉丝点击