首页 新闻 搜索 专区 学院

关于WPF《空域问题》中 Microsoft.DwayneNeed 动态库使用的问题

0
悬赏园豆:100 [已解决问题] 解决于 2018-11-01 11:59

大佬,我是刚毕业的菜鸟,目前在做大华摄像头视频的开发,就是给他们SDK传一个句柄就可以了。

先在的需求就是 "控件叠加的问题",用WinformHost 总是把WPF控件挡在后面,无解呀;

发现了您说的第一种方案,简洁好用;

但是在airspace:AirspaceDecorator AirspaceMode="Redirect" 属性这样设置时就会出现视频显示不完整的问题;

在设置为AirspaceMode="Clip" 或AirspaceMode="None"时就没问题;

您有遇到过这种问题吗?能否解决?如能提供思路,愿意给报酬;

RIDLLE1的主页 RIDLLE1 | 初学一级 | 园豆:112
提问于:2018-09-19 17:10
< >
分享
最佳答案
1

WPF里面嵌套WinformHost,会一直显示在最上面。winform和wpf绘制机制不一样,无法叠加的。
也就是说,直接在WPF程序传递的Hwnd上绘制的视频是无法叠加控件的。

如果非要在视频上叠加控件,可以使用writeablebitmap绘制图像的方式呈现视频,这里给两个方案:

  1. 如果能拿到摄像机的视频流的话,用ffmpeg库解码,将图像绘制到writeablebitmap上去。
  2. 在其它隐藏的进程或窗口中提供hwnd呈现视频,同时将呈现视频后的图像写入到writeablebitmap中去。

方案1是我用过的,基本上就是自己写一个视频播放器了。 但需要拿到摄像机的h264码流,同时使用ffmpeg解码,工作量较大,但它是可控性最好,最灵活的方案了。 方案2只是一个思路,没有试过,但就算可行工作量也不小。

另外还有一个方案,如果该摄像头有web播放的方案的话,直接用浏览器播放,然后在WPF程序中嵌入浏览器控件。这个应该是工作量最小的。

收获园豆:100
天方 | 大侠五级 |园豆:5266 | 2018-10-25 01:05

太感谢了,强烈统一您的第三种方法,就是通过web播放,然后再WPF程序中潜入浏览器控件

RIDLLE1 | 园豆:112 (初学一级) | 2018-11-01 11:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册