我以前从未使用过COM,我的任务是编写一个使用某些第三方COM对象的应用程序.如果有人能指出一些关于如何使用它们的好教程,我将不胜感激.更直接的是,我似乎没有安装活动模板库.我在网上搜索但无法弄清楚如何获得它.
好吧,我有一个QGraphicsScene名为eye的课程.我叫一个函数:
void eye::playSequence(int sequenceNum) {
for (int i=0; i<sequences[sequenceNum].numberOfSlides(); i++) {
presentSlide(sequenceNum, i);
time_t start;
time(&start);
bool cont=false;
while (!cont) {
time_t now;
time(&now);
double dif;
dif=difftime(now, start);
if (dif>5.0)
cont=true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
每个幻灯片调用:
void eye::presentSlide(int sequenceNum, int slideNum) {
Slide * slide=sequences[sequenceNum].getSlide(slideNum);
QGraphicsPixmapItem * pic0=scene.addPixmap(slide->getStimulus(0)->getImage());
pic0->setPos(0,0);
QGraphicsPixmapItem * pic1=scene.addPixmap(slide->getStimulus(1)->getImage());
pic1->setPos(horizontalResolution-350,0);
QGraphicsPixmapItem * pic2=scene.addPixmap(slide->getStimulus(2)->getImage());
pic2->setPos(horizontalResolution-350,verticalResolution-450);
QGraphicsPixmapItem * pic3=scene.addPixmap(slide->getStimulus(3)->getImage());
pic3->setPos(0,verticalResolution-450);
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望这会显示一组图像,等待5秒,然后显示下一个,依此类推.相反,它只显示所有幻灯片,然后显示最后四个图像.我试过scene.update()在每个我能成像的地方打电话,但它没有做任何事情.看起来场景只在playSequence函数返回时更新.任何想法可能会发生在这里?
我需要能够获得音频文件的长度(最好以毫秒为单位,时间对于应用程序非常重要),并播放音频.该应用程序是在Windows XP平台上用C++编写的.对音频格式/第三方库有什么建议吗?