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 }
もう少し背景を説明すると、これはテキスト アドベンチャー ゲームです。ジュークボックスのあるサロンがあります。ジュークボックスで曲を再生すると、曲の再生時に表示される歌詞から手がかりが得られます。