2011-01-19 82 views
0

大家好
我写了一个简短的程序,显示一个avi文件。我需要的程序,以获取从键盘输入,而电影正在运行(而不是结束后): 这是我的代码:从键盘得到输入,同时用matlab显示avi

图(“菜单栏”,“无”)
集(gcf,'Color','white')
set(gca,'Color','white'); (gca,'XColor','white');
set(gca,'YColor','white');
m = aviread('c:/t1.avi')
a = 30:1:100;
b = 100:-1:30;
C = [ababababab]%,跑电影来回
电影(M,C)%运行电影

感谢您的帮助
阿里尔

回答

0

的解决方案是使用winopen( 'C:/filename.avi')

winopen( 'C:/filename.avi')
此命令打开媒体播放器,并运行下面的命令在matlab脚本中。它不会等待电影结束。它在后台运行。
感谢每一个
阿里尔

0

至于我知道MATLAB中的多线程或并行处理功能是有限的;然而,它似乎有补救措施。 This article描述了结合MATLAB和C++代码,使用MEX文件。

现在我不得不承认,我从来没有试过这个,所以我不能说它会在你的情况下工作,但它将是一个很好的开始。

+0

谢谢,但我试图避免并行编程 – user552231 2011-01-19 11:20:14

1

也许您可以将视频插入UIPanel(或其他合适的GUI项目)并使用KeyPressFcn回调。 看看这个:Callback Sequencing and Interruption(我不知道它是否可以工作,但它可能值得尝试)。

+0

我觉得这是有机会的唯一方法。 – Jonas 2011-01-20 12:58:51

0

除非movie()已被设计为观察输入,我认为你将不得不多线程,从其他答案之一听起来有点复杂。

您可以播放短片的视频,然后运行代码来检查输入,然后播放视频的下一位。我不确定当视频播放到输入缓冲区时,是否可以指望用户输入的内容。