.mp3 파일을 선택하면 setup.exe를 실행할 때 재생되지만 .xm 또는 .s3m으로 변경하면, 그것은.xm 및 .s3m 파일은 Inno Setup의 BASS 라이브러리에서만 재생됩니다. .mp3
[Setup]
AppName=Bass Audio Project
AppVersion=1.0
DefaultDirName={pf}\Bass Audio Project
[Files]
Source: "Bass.dll"; Flags: dontcopy
Source: "tune.xm"; Flags: dontcopy
[CustomMessages]
SoundCtrlButtonCaptionSoundOn=Play
SoundCtrlButtonCaptionSoundOff=Mute
[Code]
const
BASS_SAMPLE_LOOP = 4;
BASS_ACTIVE_STOPPED = 0;
BASS_ACTIVE_PLAYING = 1;
BASS_ACTIVE_STALLED = 2;
BASS_ACTIVE_PAUSED = 3;
BASS_UNICODE = $80000000;
BASS_CONFIG_GVOL_STREAM = 5;
const
#ifndef UNICODE
EncodingFlag = 0;
#else
EncodingFlag = BASS_UNICODE;
#endif
type
HSTREAM = DWORD;
function BASS_Init(device: LongInt; freq, flags: DWORD;
win: HWND; clsid: Cardinal): BOOL;
external '[email protected]:bass.dll stdcall';
function BASS_StreamCreateFile(mem: BOOL; f: string; offset1: DWORD;
offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): HSTREAM;
external '[email protected]:bass.dll stdcall';
function BASS_Start: BOOL;
external '[email protected]:bass.dll stdcall';
function BASS_Pause: BOOL;
external '[email protected]:bass.dll stdcall';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL;
external '[email protected]:bass.dll stdcall';
function BASS_SetConfig(option: DWORD; value: DWORD): BOOL;
external '[email protected]:bass.dll stdcall';
function BASS_ChannelIsActive(handle: DWORD): DWORD;
external '[email protected]:bass.dll stdcall';
function BASS_Free: BOOL;
external '[email protected]:bass.dll stdcall';
var
SoundStream: HSTREAM;
SoundCtrlButton: TNewButton;
Muted: Boolean;
procedure SoundCtrlButtonClick(Sender: TObject);
begin
if not Muted then
begin
if BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 0) then
begin
SoundCtrlButton.Caption := 'Play';
Muted := True;
end;
end
else
begin
if BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500) then
begin
SoundCtrlButton.Caption := 'Mute';
Muted := False;
end;
end;
end;
procedure InitializeWizard;
begin
ExtractTemporaryFile('tune.xm');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
SoundStream := BASS_StreamCreateFile(False,
ExpandConstant('{tmp}\tune.xm'), 0, 0, 0, 0,
EncodingFlag or BASS_SAMPLE_LOOP);
BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);
BASS_ChannelPlay(SoundStream, False);
SoundCtrlButton := TNewButton.Create(WizardForm);
SoundCtrlButton.Parent := WizardForm;
SoundCtrlButton.Left := 8;
SoundCtrlButton.Top := WizardForm.ClientHeight -
SoundCtrlButton.Height - 8;
SoundCtrlButton.Width := 40;
SoundCtrlButton.Caption :=
ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOff}');
SoundCtrlButton.OnClick := @SoundCtrlButtonClick;
end;
end;
procedure DeinitializeSetup;
begin
BASS_Free;
end;
어떻게해야합니까 재생되지 않습니다? 나는 원본 파일에 .xm 또는 .s3m이고 변환 된 것은 .mp3이 아닌 파일에 사용하고 싶다.
Un4seen에서 볼 수 있듯이 bass.dll은 .xm 및 .s3m을 지원합니다.
[XMPlay] (http://support.xmplay.com/)에있는 파일을 좋을 수 있습니까? –
** 재생 ** 파일을 의미합니까? [screenshot] (http://i.imgur.com/1Z3LoXW.png) – DDoS
파일을 우리와 공유 할 수 있습니까? –