如何解决如何使用TMediaPlayer避免3-5秒的延迟?
过去效果很好。我有一个包含许多控件的表单,包括使用FireDAC连接到SQL数据库的TDBGrid
。其中有2个按钮,其中1个将在您按下按钮的同时播放.wav
文件,而1个将在1.5秒内播放.wav
文件。这是为了发出喇叭声。
如果按住喇叭按钮,将需要2秒钟以上的声音。如果按1.5秒按钮,则不会发出声音。
如果点击并按住按钮3-4次,然后按住,声音几乎立即发出,可以播放3声短促的冲击声或1.5声。点击步骤后,必须在1-2秒内按下声音按钮,否则延迟将返回。
void __fastcall TSjJudgeF::HornBtnKeyDown(TObject *Sender,WORD &Key,TShiftState Shift)
{
if (Key == 72)
{
//mp1->Notify = true;
mp1->Play();
}
}
void __fastcall TSjJudgeF::HornBtnKeyUp(TObject *Sender,TShiftState Shift)
{
mp1->Stop();
mp1->StartPos = 1;
}
通过按钮调用以获取特定的声音。
void __fastcall TSjJudgeF::AutoHorn(int Dur,int BRepeat)
{ //Dur= duration set 500ms BRepeat 3 for stop
for (int i=0; i<BRepeat; i++)
{
if (BRepeat < 2)
mp1->Wait = false;
else
mp1->Wait = true;
mp1->StartPos = 1;
mp1->EndPos = Dur;
mp1->Notify = false;
mp1->Play();
}// end for when fixed
}
声音已加载,除非有要求,否则不会改变。其他控件会不断变化。
有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。