如何使用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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...