大家好 我写了一个显示avi文件的短程序。我需要程序在电影运行时从键盘输入(而不是在它结束后): 这是我的代码:
图( '菜单栏', '无')
set(gcf,'Color','white')
集(GCA, '颜色', '白');
集(GCA, 'XColor', '白色');
集(GCA, 'YColor', '白色');
米= aviread( 'C:/t1.avi')
一个= 30:1:100;
B = 100:-1:30;
c = [a b a b a b a b a b]%来回运行电影
movie(m,c)%运行电影
感谢您的帮助 阿里尔
答案 0 :(得分:1)
也许您可以将视频插入UIPanel(或其他合适的GUI项目)并使用KeyPressFcn回调。 看看这个:Callback Sequencing and Interruption(我不知道它是否可行,但它可能值得尝试)。
答案 1 :(得分:0)
据我所知,MATLAB中的多线程或并行处理能力有限;然而,似乎有补救措施。 This article描述了使用MEX文件组合MATLAB和C ++代码。
现在我不得不承认我从未尝试过这样做,所以我不能说它会适用于你的情况,但这将是一个很好的起点。
答案 2 :(得分:0)
除非movie()
设计用于观察输入,否则我认为你必须多线程,其中一个其他答案听起来有点复杂。
您可以播放视频的一小部分,然后运行代码检查输入,然后播放视频的下一部分。我不确定你是否可以指望用户在录制视频进入输入缓冲区时输入的内容。
答案 3 :(得分:0)
解决方案是使用winopen('c:/filename.avi')
winopen( 'C:/filename.avi')
此命令打开媒体播放器并在matlab脚本中运行以下命令。它不等待电影结束。它在后台运行。
谢谢你们每一个人 爱丽儿