其他地方有一个Stackoverflow线程指出Firemonkey必须通过主线程显示视频。我正在尝试使用DirectX摄像头捕获一系列图像(现在在Win8.1中 - 其他操作系统可以等待)。所以我在Embarcadero示例代码中使用SampleBufferReady和SampleBufferSync方法(在表单上只有一个TImage),但是如果有足够的更改,我什么都看不到。我需要在TImageViewer中进行显示;将tbitmap指向该tbitmap的SampleBufferSync很容易。但没有任何表现。从程序的角度来看,我想要的伪代码是
setup whatever
camera.startcapture
repeat
repeat until framecaptured {what SampleBufferReady should do -- only fire when ready}
Imageviewer.repaint {inside SampleBufferReady?}
inc(mycounter) {inside SampleBufferReady?}
until (mycounter>mylimit) or (user interrupts video input)
camera
可以添加一个ttimer来减慢速度。我不知道"得到什么"是
建议?
答案 0 :(得分:0)
这是一个完整的代码源,我在函数调用和机制方面测试与pascal相同的c ++版本,只有语法不同: download here the pascal version
代码适用于android和桌面(我测试c ++版本)。所以下载,测试并确认pascal代码。