【发布时间】:2019-03-09 08:22:48
【问题描述】:
我有一个包含三个按钮组件的 delphi VCL 表单。单击按钮后,将播放与该特定按钮关联的短 4 秒音频文件 .wav(在资源文件中)。
在程序打开后第一次单击按钮时,播放开始前会出现约 1/2 秒的烦人延迟。在播放文件后的 5 秒左右内单击按钮不会发生这种延迟,尽管延迟会以更长的间隔重复出现。在当前播放的文件完成之前单击按钮中断播放也不会产生延迟。
我怎样才能摆脱这些延迟,或者至少大幅减少它们?声音文件本身没有静音导入。这是代码(Delphi 社区版):
unit Unit8;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm8 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
public
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject);
begin
PlaySound('Resource_1', HInstance, SND_RESOURCE or SND_NODEFAULT or SND_ASYNC or SND_SENTRY);
end;
procedure TForm8.Button2Click(Sender: TObject);
begin
PlaySound('Resource_2', HInstance, SND_RESOURCE or SND_NODEFAULT or SND_ASYNC or SND_SENTRY);
end;
procedure TForm8.Button3Click(Sender: TObject);
begin
PlaySound('Resource_3', HInstance, SND_RESOURCE or SND_NODEFAULT or SND_ASYNC or SND_SENTRY);
end;
end.
【问题讨论】:
-
您没有指定 .wav 文件的大小。这会显着影响加载时间