MATLAB GUI界面实现以一个按钮控制播放和暂停视频功能

MATLAB GUI界面实现以一个按钮控制播放和暂停视频功能

一个按钮实现播放和暂停视频

通过改变按钮上显示的字“播放”、“暂停”来实现控制。

function pausestart_Callback(hObject, eventdata, handles)
% hObject    handle to pausestart (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global VideoObject;
global Currentframe;
st =  get(handles.pausestart,'string');%判断控件的String 是否为 播放
if strcmp(st, '播放')
    set(handles.pausestart,'string','暂停');
    uiresume;%回复暂停
  obj=VideoObject;
 obj_numberofframe=obj.NumberOfFrame;
 if Currentframe==obj_numberofframe
     Currentframe=1;
     set(handles.text7,'String',num2str(Currentframe))
 end
 for j=Currentframe:obj_numberofframe
     frame=read(obj,j);
     axes(handles.axes1); 
     imshow(frame);
     Currentframe=j;
     set(handles.text7,'String',num2str(Currentframe));
     %关键部分
     if strcmp(st,'暂停')
        break;
     end
     drawnow()
 end
 elseif strcmp(st,'暂停') 
    set(handles.pausestart,'string','播放');
    uiwait;%用于暂停
end

框架

function pausestart_Callback(hObject, eventdata, handles)
st =  get(handles.pausestart,'string');%判断控件的String 是否为 播放
if strcmp(st, '播放')
    set(handles.pausestart,'string','暂停');
    uiresume;%回复暂停
 for ……
     if strcmp(st,'暂停')
        break;
     end  
     drawnow()
 end
 elseif strcmp(st,'暂停') 
    set(handles.pausestart,'string','播放');
    uiwait;%用于暂停
end

两个按钮分别控制播放和暂停

通过设置全局变量pluse实现视频的播放和暂停。
缺点:需要两个按钮(播放按钮和暂停按钮)

%播放视频按钮
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton7 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global VideoObject;  %视频路径全局变量,VideoObject=VideoReader('D:/ant1.mp4')
global Currentframe; %当前帧数
global pluse; %控制播放和暂停变量
  pluse=1;  
  obj=VideoObject;
 obj_numberofframe=obj.NumberOfFrame;
 if Currentframe==obj_numberofframe
     Currentframe=1;
     set(handles.text7,'String',num2str(Currentframe))
 end
 for j=Currentframe:obj_numberofframe
     frame=read(obj,j);
     axes(handles.axes1); 
     imshow(frame);
     Currentframe=j;
     set(handles.text7,'String',num2str(Currentframe));
     %如果按下暂停按钮,则pluse=0,退出循环
     if pluse==0
        break;
     end
     drawnow()  %不可缺少,实时更新全局变量
 end

%暂停视频按钮
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton8 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global pluse;
   pluse=0;

框架

%播放视频按钮
function pushbutton7_Callback(hObject, eventdata, handles)
global pluse; %控制播放和暂停变量
  pluse=1;  
 for ……
     %如果按下暂停按钮,则pluse=0,退出循环
     if pluse==0
        break;
     end
     drawnow()  %不可缺少,实时更新全局变量
 end

%暂停视频按钮
function pushbutton8_Callback(hObject, eventdata, handles)
global pluse;
   pluse=0;
  • 8
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MatlabGUI里面启动或者暂停Simulink模型-start_and_stop_gui.fig 针对这个问题:https://www.ilovematlab.cn/thread-23233-1-1.html 现在我做一个解答,从mathworks那里学习了一下。 第一步:创建你自己的Simulink模型,这个不用我讲吧,我们使用以下模型做演示: start_and_stop.mdl 第二步:创建自己的GUI, 这个论坛里也有例子,我们使用以下文件。 start_and_stop_gui.fig start_and_stop_gui.m Figure12.jpg 在start simulation里面,直接用sim函数,这个大家好像都会: % --- Executes on button press in startsim. function startsim_Callback % hObject handle to startsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data modelname = get; stoptime = str2num); sim复制代码 在stop simulation,里面,callback这样写: % --- Executes on button press in stopsim. function stopsim_Callback % hObject handle to stopsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data global GUIStopFlag; GUIStopFlag = 1; 复制代码第三步:写一个s函数,不停地检测这个GUIStopFlag参数,发送命令给STOP按钮,告诉他,可以结束了,简单吧? sysstop_new.m 第四步:在simulink模型里面,加上这个S函数 Figure13.jpg 好了,大功告成了,现在你就可以在GUI里随意控制Simulink模型了。 注:文所用的模型,GUI文件,由mathworks公司提供。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值