4

30 年以上前の Turbo Pascal プログラムを FireMonkey に変換しています。相当するものがないように見えるものの 1 つは、SOUND コマンドです。StackOverflow の他の場所で、Windows のビープ音 (VCL 内) に置き換えることができることを発見しましたが、Android の FireMonkey で機能するソリューションが必要です。私のプログラムは各サウンドと共に歌詞を表示するので、サウンドを録音して MP3 ファイルを再生するだけではいけません。また、Turbo Pascal の SOUND コマンドの不格好な 1 音 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