Александр85
Новичок
Здравствуйте!
Помогите изменить код, пожалуйста!
	
	
		
			
	
	
	
		
		
	
Код для проигрывания музыки + кнопки управления, но мне не нужна кнопка Стоп! нужно просто Вкл/Выкл музыку и чтобы она была СЛЕВА вместо СТОП, ОДНА КНОПКА СЛЕВА - вместо кнопки СТОП!
Т.е. если музыка играет - на кнопке написано "Выкл музыку," если пользователь нажимает на неё, то на кнопке написано будет "Вкл музыку" и всё, больше ничего НЕ надо вообще! И эта кнопка чтобы была по максимуму слева в нижнем левом углу окна инсталлятора, там где сейчас в коде кнопка СТОП. Кнопку СТОП убрать вообще! Одна кнопка - музыка играет на ней написано "Выкл", музыка не играет на ней написано "Вкл" - всё! А при нажатии соответственно надпись меняется на противоположную и музыка, либо включается, либо выключается!
Не знаю, зачем придумали в этом коде 2 кнопки отдельно? )) Не нравится пользователю музыка выключил и всё! Захотел послушать музыку - включил!
P.S. Можно ли сделать так, чтобы изначально музыка проигрывалась с громкостью ПОТИШЕ, ну там с громкостью в 30-50%, а не по максимуму?
				
			Помогите изменить код, пожалуйста!
		Код:
	
	  [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 'BASS_Init@files:bass.dll stdcall';
function BASS_StreamCreateFile(mem: BOOL; f: string; offset1: DWORD;
  offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): HSTREAM;
  external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_Start: BOOL;
  external 'BASS_Start@files:bass.dll stdcall';
function BASS_Pause: BOOL;
  external 'BASS_Pause@files:bass.dll stdcall';
function BASS_Stop(): Boolean;
  external 'BASS_Stop@files:BASS.dll stdcall delayload';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL;
  external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_SetConfig(option: DWORD; value: DWORD ): BOOL;
  external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_ChannelIsActive(handle: DWORD): DWORD;
  external 'BASS_ChannelIsActive@files:bass.dll stdcall';
function BASS_Free: BOOL;
  external 'BASS_Free@files: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;Т.е. если музыка играет - на кнопке написано "Выкл музыку," если пользователь нажимает на неё, то на кнопке написано будет "Вкл музыку" и всё, больше ничего НЕ надо вообще! И эта кнопка чтобы была по максимуму слева в нижнем левом углу окна инсталлятора, там где сейчас в коде кнопка СТОП. Кнопку СТОП убрать вообще! Одна кнопка - музыка играет на ней написано "Выкл", музыка не играет на ней написано "Вкл" - всё! А при нажатии соответственно надпись меняется на противоположную и музыка, либо включается, либо выключается!
Не знаю, зачем придумали в этом коде 2 кнопки отдельно? )) Не нравится пользователю музыка выключил и всё! Захотел послушать музыку - включил!
P.S. Можно ли сделать так, чтобы изначально музыка проигрывалась с громкостью ПОТИШЕ, ну там с громкостью в 30-50%, а не по максимуму?
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
							
							 
	 
 
		 
 
		
 
 
		

