我有两个屏幕,其中一个屏幕A显示软件界面,另一个屏幕B显示视频和图像信息。现在,我需要在屏幕B上显示一个视频。播放完视频后,我需要显示一个TPNGImage。现在的问题是视频播放后显示TPNGImage出现问题,屏幕仍然是视频的最后一帧,ReDrowMyself函数是用计时器调用的,图像是PNG图像,2160 * 3840
void CSensory_Test::play_stop()
{
Form_Main->pForm_pg->Image_qmian->Visible = true;
Form_Main->pForm_pg->MediaPlayer1->Close();
}
void CSensory_Test::ReDrowMyself()
{
//
if(Form_Main->pForm_pg == NULL) {
return;
}
if(Form_Main->pForm_pg->Image_qmian->Visible)
{
try
{
Form_Main->pForm_pg->MediaPlayer1->Close();
}
catch(...)
{
}
}
TRect myrect(0,0,g_qm_width,g_qm_height);
Form_Main->pForm_pg->Image_qmian->Canvas->StretchDraw(myrect,gqmGraphic);
}
字符串
我期待在关闭TMediaPlayer播放后立即显示我需要的图像
1条答案
按热度按时间1tu0hz3e1#
您可以使用
OnNotify
事件触发图像的显示。要在视频结束时触发
OnNotify
事件,必须在调用MediaPlayer.Play
之前设置( Delphi 语法)Mediaplayer.Notify := True
。从文档(强调我的):
在调用媒体控制方法**之前将Notify属性设置为true时,在完成媒体控制方法(后退、关闭、弹出、下一个、打开、暂停、仅暂停、播放、上一个、恢复、倒带、开始录制、步进或停止)**后发生OnNotify。在OnNotify事件之后,必须将Notify属性重置为true,才能发生下一个OnNotify事件。
要清除最后一张图片,请调用
MediaPlayer1.Close;