一个很诡异的现象,C#编写winform程序,用pictureBox显示播放视频,只有同时用cvNamedWindow才能正常显示
如题,我用C#编写了一个winform程序,想用pictureBox播放视频文件(方法一),但是只能显示单个视频帧,当循环显示视频帧的时候,程序就卡死了。网上也有另外一种...
如题,我用C#编写了一个winform程序,想用pictureBox播放视频文件(方法一),但是只能显示单个视频帧,当循环显示视频帧的时候,程序就卡死了。网上也有另外一种显示视频的方法,即用CvInvoke.cvNamedWindow新建一个窗口(方法二),然后在这个窗口里显示视频。我试了第二个方法是可行的。奇怪的是,当我同时用这两个方法的时候,方法一竟然可以运行了。也就是说只有在方法二存在的前提下,方法一才能用,请问这是为什么???下图是我的程序和效果图
如上图程序,如果把方法二的第1句去掉(第2,3两句不会影响),那pictureBox就不能显示视频了,整个程序卡死。
请问这到底是为什么呢??有什么方法可以只用pictureBox播放视频而不用新建窗口? 展开
如上图程序,如果把方法二的第1句去掉(第2,3两句不会影响),那pictureBox就不能显示视频了,整个程序卡死。
请问这到底是为什么呢??有什么方法可以只用pictureBox播放视频而不用新建窗口? 展开
展开全部
我的感觉是cvNamedWindow是能播放视频的,picturebox只是在不停地截图并且显示。
好像不能只用picturebox
你可以尝试隐藏cvNamedWindow
好像不能只用picturebox
你可以尝试隐藏cvNamedWindow
追问
能告诉我隐藏的方法怎么写吗?另外我现在遇到另一个问题,我想用两个pictureBox播放两路视频,打开第一个pictureBox播放正常,当此时打开第二个的时候,第一视频就被暂停了,请问这个应该怎么解决呢?
追答
我对这个的具体实现并不是很清楚,但是可以肯定的是不能用这个方法同时播放两个视频的因为它们处于同一进程,而且做的都是截图。你这个方法并不是真正意义上的播放视频。建议你采用COM组件什么的,或者是封装好的控件,不要自己这样做。要在一个程序中同时播放两个视频可能需要用到多线程技术,没有你想的那么简单的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询