先把大致要写的东西写一下,手里的活忙完了再完善。

在代码中使用下边的语句,获取Kinect中,colorFrame, depthFrame, bodyIndex三种帧,但是经常会遇到在后边的程序中处理三个帧之后,就无法再得到新的帧了。

hr = pMultiSourceFrameReader->AcquireLatestFrame(&pMultiSourceFrame);

原因大概是因为colorFrame太大了传输时间过长,或者是后续处理图片的时间过长,然后由于某些搞不懂的原因,在上边的代码中,hr的值总是:  E_PENDING The data necessary to complete this operation is not yet available.

这里,在上边这句代码中加入下边这段,可以解决此问题。

while (FAILED(hr))
{
SafeRelease(pMultiSourceFrame);
SafeRelease(pMultiSourceFrameReader);
hr = pMyKinect->OpenMultiSourceFrameReader(FrameSourceTypes::FrameSourceTypes_Depth |
FrameSourceTypes::FrameSourceTypes_Color | FrameSourceTypes::FrameSourceTypes_BodyIndex,
&pMultiSourceFrameReader);
Sleep();
if (SUCCEEDED(hr))
{
hr = pMultiSourceFrameReader->AcquireLatestFrame(&pMultiSourceFrame);
} cout << "MultiSourceFrame" << rand() % << endl;
}

原理: 当获取不到帧时,先释放pMultiSourceFrame 和 pMultiSourceFrameReader 这两个资源,然后重新初始化,并获得帧。记得初始化之后,在读取帧的时候让程序Sleep一小段时间,不然由于时间太短,Kinect会反应不过来,仍然获取不到帧。

完整代码后续放出。

最新文章

  1. Flexible 弹性盒子模型之CSS flex-grow 属性
  2. ajax用get刷新页面元素在IE下无效解决~~
  3. JS原生第七篇 (帅哥)
  4. OPEN CASCADE Gauss Least Square
  5. Ogre碰撞检测
  6. 如何在ubuntu 12.04 中安装经典的 GNOME桌面
  7. An overview of the Spring MVC request flow
  8. C++11新特性:右值引用和转移构造函数
  9. Tornado,展示一下模板渲染
  10. css重点
  11. pyqt QTimer,QThread例子学习
  12. spring mvc 非注解形式
  13. 今天刚申请成为Uber司机 已经接了5单了....大家有什么想问的吗?
  14. Qt控件精讲一:按钮
  15. MySQL性能调优与架构设计
  16. W3CSchool闯关笔记(JQuery)
  17. The Best Books on Game Dev
  18. java日志的相关配置文件知识
  19. 安装win7出现安装程序无法创建新的系统分区
  20. Kotlin入门(12)类的概貌与构造

热门文章

  1. Python学习之参数
  2. thinkjs升级到3.0后的图片上传
  3. countUp.js-让数字动起来
  4. css3 box-shadow阴影(外阴影与外发光)
  5. 设计APP时我们该怎么做
  6. [LeetCode] Smallest Range 最小的范围
  7. Python学习【第26篇】:Python系列- 多线程(threading)
  8. python系列之 - 并发编程(进程池,线程池,协程)
  9. 跨域访问 - 跨域请求 同源策略概念对跨域请求的影响 及几种解决跨域请求的方法如 jsonp
  10. Java基础知识回顾之四 ----- 集合List、Map和Set