Звук для установки завершен - PullRequest
0 голосов
/ 26 августа 2010

Я делаю свой собственный установщик, и он почти завершен. Единственное, чего не хватает - это звука после завершения установки. Это вызов Windows API или мне нужно будет найти этот аудиофайл и воспроизвести его из исходного кода?

Ответы [ 3 ]

4 голосов
/ 26 августа 2010

Используйте функцию MessageBeep .

1 голос
/ 05 июня 2011

Этот небольшой набор функций будет загружать, воспроизводить, останавливать и выгружать (свободную память) для любых звуковых файлов, поддерживаемых MCI. [* .wav, * .mp3, * .wma и т.д ...]

uses MMSystem;

function LoadMediaFile(absoluteFile,clipName: String): Integer;
var
  pc2: PChar;
  pc3: String;
    begin
      pc3 := '"'+absoluteFile+'"';
      pc2 := PChar('Open ' + pc3 + ' Alias '+ clipName);
      Result := mciSendString(pc2, PChar(0), 0, 0);
    end;

function StartMediaFile(clipName: String) : Integer;
var
  pc2: PChar;
    begin
      pc2 := PChar('Play ' + clipName + ' From ' + '0');
      Result := mciSendString(pc2, PChar(0), 0, 0);
    end;

function StopMediaFile(clipName: String): Integer;
var
  pc2: PChar;
  i: Integer;
    begin
      pc2 := PChar('Stop ' + clipName + ' wait');
      i := 0;
      while (mciSendString(pc2, PChar(0), 0, 0)<>0) and (i < 250) do
        begin
          Result := mciSendString(pc2, PChar(0), 0, 0); i := i + 1;
        end;
    end;

function DumpMediaFile(clipName: String): Integer;
var
  pc2,pc3: PChar;
  i: Integer;
    begin
      pc2 := PChar('Stop ' + clipName + ' wait');
      pc3 := PChar('Close ' + clipName + ' Wait');
      i := 0;
      while (mciSendString(pc2, PChar(0), 0, 0)<>0) and (i < 250) do
        begin
          mciSendString(pc2, PChar(0), 0, 0); i := i + 1;
        end;
      i := 0;
      while (mciSendString(pc3, PChar(0), 0, 0)<>0) and (i < 250) do
        begin
          Result := mciSendString(pc3, PChar(0), 0, 0); i := i + 1;
        end;
    end;

Используйте их так:

ResultInteger1 := LoadMediaFile('X:\Path\To\File.WAV', 'ClipName');
ResultInteger2 := StartMediaFile('ClipName');
Sleep(3000);
ResultInteger3 := StopMediaFile('ClipName');
ResultInteger4 := DumpMediaFile('ClipName');

Воспроизводит 3 секунды файла X: \ Path \ To \ File.WAV.

Вы можете использовать:

if ResultInteger2 <> 0 then ShowMessage('ClipName did not play.');
//or
if ResultInteger2 = 0 then ShowMessage('ClipName did play.');
0 голосов
/ 26 августа 2010

Вы можете легко воспроизводить системные звуки по умолчанию, используя:

System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Asterisk.Play();
System.Media.SystemSounds.Exclamation.Play();
System.Media.SystemSounds.Hand.Play();
System.Media.SystemSounds.Question.Play();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...