3

ゲームで効果音を再生するための実用的な方法はすでにありますが、サウンドはすべてデフォルトの音量で再生されます。効果音の原点とプレイヤーとの距離が離れるほど、音を静かにしたいと思います。

現在使用しているもの:

public static void play(String sound) {
    Clip clip = soundList.get(sound);
    clip.setFramePosition(0);
    //I want to set the clip's volume here
    clip.start();
}

clip.getLevel()のようなものがありますが、セッターはありません。クリップが開始する前に、クリップの音量を設定するにはどうすればよいですか?

前もって感謝します!

4

2 に答える 2

1

Java 7 (およびおそらく Java 6) には、クリップを制御する一連のクラスがあります。これらは:

  • ブール制御
    • ミュート
    • リバーブの適用/削除
  • 化合物コントロール
  • 列挙制御
    • リバーブ コントロール
  • フロート制御
    • 補助リターン
    • 補助送信
    • バランス
    • マスターゲイン
    • パンニング
    • リバーブリターン
    • リバーブセンド
    • サンプルレート
    • 音量

探しているコントロール オブジェクトはFloatControl. 上記のリストに示されているように、これによりクリップの音量を制御できます。次のコードを使用してこれを実装します。

FloatControl volume = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(gainAmount);

-また-

((FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN)).setValue(gainAmount)

gainAmountクリップを上げたい (または下げたい) デシベルの量はどこにありますか。

于 2013-12-15T08:16:43.123 に答える
0

クリップ API はこれをサポートしていません。生データを読み取り、定数を掛けて、生データを使用して新しいクリップを作成する必要があると思います。定数は音量の変化量を表すので、音量を半分にしたい場合は.5を掛けます。

何かを大きくしたい場合は、「オーバー」に注意する必要があります。それに対処する簡単な方法はありません。

于 2012-05-20T17:29:30.093 に答える