ttw_fmx_v10/utils/uSoundManager.pas

100 lines
2.1 KiB
Plaintext

unit uSoundManager;
interface
uses System.classes, winapi.ShellAPI, {bass_simple,} winapi.windows, System.SysUtils;
type
TSongMachine = class(TObject)
private
public
constructor Create;
destructor Destroy;
procedure PlayPublic(AFileName: string; aVolume: string);
procedure PlaySilent(AFileName: string; aVolume: string);
end;
implementation
uses uGeneral;
{ var
mp: TBassSimple;}
{ SongMachine }
constructor TSongMachine.Create;
begin
inherited;
{ mp := TBassSimple.Create(0);}
end;
destructor TSongMachine.Destroy;
begin
{ mp.FreeStream;
mp.Free;}
end;
function TimeToSeconds(const timeStr: string): Integer;
var
minutes, seconds: Integer;
begin
if TryStrToInt(Copy(timeStr, 1, 2), minutes) and
TryStrToInt(Copy(timeStr, 4, 5), seconds) then
begin
result := minutes * 60 + seconds;
end
else
begin
result := -1;
end;
end;
procedure TSongMachine.PlaySilent(AFileName: string; aVolume: string);
var
sec: string;
{ mm: TBassSimple;}
begin
try
if not FileExists(AFileName) then
begin
TTW_Bot.toLog( 'TSongMachine', 'PlayPublic', 'Íåò ôàéëà ' + AFileName,2);
exit;
end;
{ mm := TBassSimple.Create(0);
try
mm.OpenFile(AFileName);
sec := inttostr(TimeToSeconds(mm.TimeLength) + 1);
finally
mm.FreeStream;
mm.Free;
end;}
ShellExecute(0, 'open', PChar(myConst.SilentPlay),
PChar(Format('%s %s "%s"', [sec, aVolume, AFileName])), nil, SW_HIDE);
except
on e: Exception do
TTW_Bot.toLog( 'TSongMachine', 'PlaySilent', e.message,2)
end;
end;
procedure TSongMachine.PlayPublic(AFileName: string; aVolume: string);
begin
try
if not FileExists(AFileName) then
begin
TTW_Bot.toLog( 'TSongMachine', 'PlayPublic', 'Íåò ôàéëà ' + AFileName,2);
exit;
end;
{ mp.Volume := strtoint(aVolume);
mp.Play(AFileName)}
except
on e: Exception do
TTW_Bot.toLog( 'TSongMachine', 'PlaySilent', e.message,2)
end;
end;
end.