4

我正在将一个 30 多年的 Turbo Pascal 程序转换为 FireMonkey。似乎没有等效的东西之一是 SOUND 命令。我在 StackOverflow 的其他地方发现它可以用 Windows 哔声(在 VCL 中)替换,但我需要一个适用于 Android 上的 FireMonkey 的解决方案。我的程序显示歌词和每个声音,所以我不能只录制声音和播放 MP3 文件。我还想在 Turbo Pascal 中保留 SOUND 命令的那种笨重的单音符 8 位声音。主要命令是 Sound(Round(Frequency))。知道如何在 FireMonkey 中模仿它吗?以下是播放每个音符的原始代码,以防有帮助:

procedure Playnote(speed,Octave,Note,Duration: integer);
var
   Frequency : real;
   I         : integer;
begin
   if note = 0 then sleep(speed*duration)   // was "delay" in Turboo Pascal
   else begin
      Frequency := 32.625;
      for I := 1 to Octave do Frequency := Frequency * 2;
      for I := 1 to Note - 1 do Frequency := Frequency * 1.059463094;
      if Duration <> 0 then begin
         if soundon then Sound(Round(Frequency));      
         sleep(speed*Duration);    // was "delay" in Turboo Pascal
         NoSound;                                     
      end
      else if soundon then Sound(Round(Frequency));    
   end;
end;    {end PLAYNOTE }

对于更多背景知识,这是一款文字冒险游戏。有一个带自动点唱机的轿车。在自动点唱机上播放歌曲会为您提供歌词中的线索,这些线索会在歌曲播放时显示。

4

0 回答 0