私は Java SingStar のようなアプリケーションを構築しています。レイアウトなどに関する基本的な知識はすべて持っていますが、Java Swing の経験があまりないため、助けが必要です。
私の意図は次のとおりです。
- Midi ファイルを開きます。
- 注意事項を読んでください。
- このデータを表示する GUI を生成します。
- プレイ中、常に GUI を移動します。
私が考えた (そして行った) ことは、Midi データを表す BufferedImage を作成することです。たとえば、MidiLength x ScreenHeight BufferedImage (通常は 1024 x >10.000) があり、これを動的に読み取って midi データを読み込みます。次に、BufferedImage の最初の ScreenWidth x ScreenHeight 部分を表示し、ユーザーが再生を開始すると、5ms ごとに BufferedImage サブイメージ x 開始座標を更新します。このようにして、探しているものをうまく達成できます。
私が話していることをよりよく理解できるように、GUI の画像を投稿しています。
http://img844.imageshack.us/img844/3324/javagui.png
問題は、Midi の長さによっては、この内部 BufferedImage がかなり巨大になる可能性があるため、大量の RAM を消費することですが、これを行うための他の方法は考えられません。
どんなアイデアでも大歓迎です。
前もって感謝します!