설치 프로그램에서 내 프로그램 설치를 마칠 때 점진적으로 비디오 재생 볼륨을 페이드 아웃하려면 다음 코드를 작성했습니다. 나는 점차적으로 볼륨을 줄이기 위해 기대하고 내가 아니라 로그에 -1 , -2 ... -10000
처럼 볼 수있는 코드 위Inno Setup에서 TDirectShow Player (Inno Media Player) 음량이 점차적으로 줄어 듭니다.
procedure CurPageChanged(CurPageID: Integer);
var
X: Integer;
begin
...
if CurPageID = wpFinished then
begin
VideoHandler.Release;
VideoHandler.Close;
DSSetVolume(-0);
X := 0;
repeat
DSSetVolume(X);
Log(IntToStr(X));
X = X - 1;
until X = -10000;
DSStopMediaPlay;
...
end;
...
end;
는 X 값을 출력합니다. 이 반복 프로세스가 시작될 때,
WizardForm
는 일반적으로 나타납니다,하지만 아무것도의wpFinished
페이지에 표시되지 않습니다. 빈 양식 만 표시됩니다.WizardForm.Caption
을 제외한 양식에는 아무 것도 그려지지 않습니다. 반복 프로세스 (루프)가 끝날 때까지 멈춤처럼 작동합니다.볼륨이 정상적으로 감소하지 않거나 점진적으로 내림차순으로 감소하지 않습니다. 또한 일반적으로 도시 한 루프가 완료되고 로그 출력
-10000
,WizardForm
정상적으로 표시 페이지 후.
DSStopMediaPlay
으로 설정했기 때문에 볼륨이 갑자기 멈 춥니 다.
어떻게 정확하게 어떤 동결 또는 예외없이 위의 과정 (비디오 재생 사운드의 점진적 감소) 할 수 있습니까? 사용자의 시스템 사운드 Windows에서 사운드 제어판에서 20%
로 설정되었을 때
UPDATE
다음 코드는 최상의 결과를 제공 할 수 있습니다.
procedure VolumeFadeTimerProc(HandleW, msg, idEvent, TimeSys: LongWord);
begin
MPEGVideoVolume := MPEGVideoVolume - 15;
if MPEGVideoVolume < -4000 then
begin
DSStopMediaPlay;
KillTimer(0, TimerID);
KillTimer(0, VolumeFadeTimer);
Log('Volume Fade Timer has been reset.');
end
else
begin
Log('MPEG Video Volume has been set to: ' + IntToStr(MPEGVideoVolume));
DSSetVolume(MPEGVideoVolume);
end;
end;
볼륨 감소 금액은 15
최대 감소 볼륨 금액은 사용자의 시스템 사운드는 사운드 제어판에서 100%
로 설정되었을 때 가장 좋은 결과를 줄 수있는 코드를 다음과 -4000
입니다 Windows.
procedure VolumeFadeTimerProc(HandleW, msg, idEvent, TimeSys: LongWord);
begin
MPEGVideoVolume := MPEGVideoVolume - 35;
if MPEGVideoVolume < -10000 then
begin
DSStopMediaPlay;
KillTimer(0, TimerID);
KillTimer(0, VolumeFadeTimer);
Log('Volume Fade Timer has been reset.');
end
else
begin
Log('MPEG Video Volume has been set to: ' + IntToStr(MPEGVideoVolume));
DSSetVolume(MPEGVideoVolume);
end;
end;
볼륨 감소 금액은 35
최대 감소 볼륨의 양이 -10000
내가 자동으로 사용자의 시스템 사운드 설정의 양에 따라 양을 감소 볼륨 및 최대 감소 볼륨을 변경해야합니까입니다 에?
미리 감사드립니다.
감사합니다 ...... 나는'SetTimer'을 잊어 버린 이유 때문에'InnoCallback.dll '을 잊어 버렸습니다 ......... 감소량 (속도)을 조정해야합니까? 프로그램 설치자의 사용자 PC/노트북의 시스템 사운드에 따라 볼륨 및 최대 축소 가능한 볼륨 양이 자동으로? – Blueeyes789
'DSSetVolume'의 논증이 실제로 무엇인지 모르겠습니다. –
또한 예제 스크립트에서 이것을 읽었으며'DSSetVolume' musch ... ;--( – Blueeyes789