単純なJava MIDIの例では、任意の音を生成していません

StackOverflow https://stackoverflow.com/questions/380103

  •  22-08-2019
  •  | 
  •  

質問

この単純なコードでは、私はそれをテストするために使用されてきたマシンのカップル上の任意の音を発生されていません。私は、Eclipse内からコードを実行しているんだけど、私はまた、無駄にコマンドラインを使用してみました。

public static void main(String[] args)
{
    try {
        Synthesizer synthesizer = MidiSystem.getSynthesizer();
        synthesizer.open();

        MidiChannel[] channels = synthesizer.getChannels();

        channels[0].noteOn(60, 60);
        Thread.sleep(200);
        channels[0].noteOff(60);

        synthesizer.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }
}

私は成功したシーケンスにMIDIイベントを追加して、Sequencerを取得し、シーケンスを再生して音を得ることができるが、私は、シーケンサがサポートされていないいくつかのリアルタイムの音楽の影響を、やろうとしています。

任意のアイデア?

溶液での EDIT:のそれで問題が判明し、デフォルトでは、JREは、シーケンサーを使用して働いていること、そして、面白い(サウンドバンクが付属しますが、シンセサイザーのdidnを使用していない、ということです「T)。おかげで、 thejmc に!

この問題を解決するために、私はは、java.sunからサウンドバンクをダウンロード.COM とC(WinXPの上)にそれを置く:\プログラムファイル\ jre1.6.0_07 \ libに\オーディオ(オーディオフォルダを作成する必要がありました)。

役に立ちましたか?

解決

JREの一部のインストールは、ので、あなたのコードは、これらのマシン上でトリガする音源を持っていません(スペースを節約するために)JavaSound soundbank.gmが含まれていません。

動作していないマシン上のサウンドバンクの存在を確認してください。また、あなたの.classファイルと同じディレクトリにサウンドバンクを置くことができ、それはそれを見つけるでしょう。

これは、サウンドバンクを追加したり、Javaがこれらのマシンにインストール、アップグレードすることが可能である - 矛盾の痛みを、私は知っている:)

scroll top