mciSendStrignを使ってMidiファイルを再生したいのですが、再生や、停止のやり方はわかったのですが、連続再生や音量の調節のやり方がわかりません。
どのようにすればよろしいのでしょうか?
以下の記事に書いたリンクをご覧ください。
https://www.petitmonte.com/bbs/answers?question_id=556
mciSendStrignを使わないで良いなら
http://homepage1.nifty.com/vram/
のようなコンポーネントを使用するのも1つの手かと思います。
×mciSendStrign
○mciSendString
お返事ありがとうございます。
教えていただいた、MIDI演奏クラスをインストールしてみたのですが、使い方がわかりません。
使い方を教えて下さい。
コンポーネントではなくて単なるクラスでしたね。
付属のサンプルプロジェクトProject1.dprとしてクラスのプロパティやイベントを
使用したプレイヤーがあるようですのでこれを見ることをすすめます。
新規でプロジェクトを作って使用する場合は、そのプロジェクトで
使用しているフォルダにMidiPlayV.pasをコピーします。
他のファイルは不要のようです。
usesにMidiPlayVを追加
Form1のPrivate宣言で
FMidi : TMidiPlayV;
と宣言します。
フォーム生成イベントFormCreate内で
procedure TForm1.FormCreate(Sender: TObject);
begin
FMidi := TMidiPlayV.Create(Self);
end
とクラスの実体を生成します。
付属サンプルファイルを読み込んで演奏までさせるには
FMidi.LoadFromFile('VRAM01.mid'); // MIDIデータ読み込み
FMidi.PlayDevices.Add(-1,True); // 使用MIDIポートはOSのデフォルト
FMidi.Open(); // MIDIポートオープン
FMidi.PlayMs := 0; // 演奏開始位置は先頭
FMidi.Play(); // 演奏開始
停止させるには
FMidi.Stop();
のようです。
もちろん破棄イベントで
procedure TForm1.FormDestroy(Sender: TObject);
begin
FMidi.Close; // MIDIポートを閉じる
FMidi.Free; // 演奏クラス破棄
end;
のように破棄する必要もあります。
ツイート | ![]() |