如何从Windows 8中的MediaCapture API获取反馈

NcJ*_*Jie 7 windows-8 windows-runtime

我正在尝试在Windows 8应用中进行面部跟踪应用.我知道,为了访问摄像机流,我必须使用MediaCapture.AddEffectAsync()必须与C++结合,如本示例所示.

现在我可以访问流并跟踪面部,但是我无法将跟踪面坐标传递/返回到C#以进行进一步处理.

我尝试过的一种方法是在C++中调用C#方法来传回跟踪坐标.但无济于事,因为Visual Studio不允许项目之间的循环依赖.

另一种方法是不断从C++中提取数据,但这不是我想要的.

也许还有另一种更直接的方式来访问相机缓冲区,我想知道.

所以我的问题是,如何找回跟踪坐标?或者做正确的方法是什么?谢谢!

Che*_*eng 1

为了克服这个问题,我们只需在 C++ DLL 和 C# 代码之间设置 TCP/IP 本地主机连接。也就是说,我们让C#成为服务器,C++ DLL成为客户端。每当 C++ DLL 想要与 C# 通信时,C++ 只需通过 TCP/IP 套接字将数据传递给 C#。目前,Windows 8 不对同一进程内的 TCP/IP 通信施加限制。

StreamSocket 示例是一个很好的入门参考

这不是最好的方法,并且由于数据需要经过 TCP/IP 层,因此会产生轻微的性能损失。但是,到目前为止,这也许是我们能拥有的最好的,除非微软打破了这一障碍。