Je veux créer deux boutons adjacents les uns aux autres dans le coin inférieur gauche de toutes les pages comme rechargé.Comment faire des boutons Arrêter et Pause/Reprendre/Jouer de la musique dans Inno Setup
Le premier bouton affiche la Pause et la commande Reprendre (si je clique Pause, le bouton passe à CV automatiquement).
L'autre bouton affiche la commande d'arrêt (si je clique Arrêter, le bouton suivant passera à Lecture du début automatiquement)
Ce code ajoute que Pause/Reprise/Play de * commencer à bouton et arrêt bouton
le problème est le suivant: Si j'appuyez sur le bouton Arrêter , la musique st ops en permanence et le bouton Play form start ne s'affiche jamais.
[Setup]
AppName=Bass Audio Project
AppVersion=1.0
DefaultDirName={pf}\Bass Audio Project
[Files]
Source: Bass.dll; Flags: dontcopy
Source: AudioFile.mp3; Flags: dontcopy
[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_Stop(): Boolean;
external '[email protected]:BASS.dll stdcall delayload';
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;
PauseResumePlayButton: TNewButton;
StopButton: TNewButton;
procedure ResumeButtonClick(Sender: TObject); forward;
procedure PauseButtonClick(Sender: TObject);
begin
if BASS_Pause then
begin
PauseResumePlayButton.Caption := 'Resume';
PauseResumePlayButton.OnClick := @ResumeButtonClick;
end;
end;
procedure ResumeButtonClick(Sender: TObject);
begin
if BASS_start then
begin
PauseResumePlayButton.Caption := 'Pause';
PauseResumePlayButton.OnClick := @PauseButtonClick;
end;
end;
procedure PlayButtonClick(Sender: TObject);
begin
if BASS_Start then
begin
PauseResumePlayButton.Caption := 'Pause';
PauseResumePlayButton.OnClick := @PauseButtonClick;
end;
end;
procedure StopButtonClick(Sender: TObject);
begin
if BASS_Stop then
begin
PauseResumePlayButton.Caption := 'Play';
PauseResumePlayButton.OnClick := @PlayButtonClick;
end;
begin
BASS_Free;
end;
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('AudioFile.mp3');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
SoundStream :=
BASS_StreamCreateFile(
False, ExpandConstant('{tmp}\AudioFile.mp3'), 0, 0, 0, 0,
EncodingFlag or BASS_SAMPLE_LOOP);
BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);
BASS_ChannelPlay(SoundStream, False);
StopButton := TNewButton.Create(WizardForm);
StopButton.Parent := WizardForm;
StopButton.Left :=
WizardForm.ClientWidth -
WizardForm.CancelButton.Left - WizardForm.CancelButton.Width;
StopButton.Top := WizardForm.CancelButton.Top;
StopButton.Width := WizardForm.CancelButton.Width;
StopButton.Height := WizardForm.CancelButton.Height;
StopButton.Caption := 'Stop';
StopButton.OnClick := @StopButtonClick;
PauseResumePlayButton := TNewButton.Create(WizardForm);
PauseResumePlayButton.Parent := WizardForm;
PauseResumePlayButton.Left :=
WizardForm.ClientWidth -
WizardForm.NextButton.Left - WizardForm.NextButton.Width;
PauseResumePlayButton.Top := WizardForm.CancelButton.Top;
PauseResumePlayButton.Width := WizardForm.CancelButton.Width;
PauseResumePlayButton.Height := WizardForm.CancelButton.Height;
PauseResumePlayButton.Caption := 'Pause';
PauseResumePlayButton.OnClick := @PauseButtonClick;
end;
end;
procedure DeinitializeSetup;
begin
BASS_Free;
end;
Avez-vous essayé quoi que ce soit de votre côté. S'il vous plaît fournir les codes que vous avez essayé. Merci – Biswas
le code est fourni ci-dessus désolé de ne pas poster le code plus tôt –
@TLama pouvez-vous m'aider s'il vous plaît –