私は大学の友愛会にいますが、この友愛会には階段があります。時々誰かがその階段から落ちます。私たちは通常、バーの後ろにあるコンピューターから音楽を再生します (通常はインターネットまたは iTunes から)。私は USB ボタンを持っており、誰かが階段から落ちた後にボタンを押すと、BGM を一時的にミュートし、「Wiiiipe-ouuut」という曲のクリップを再生するプログラムを書きたいと考えています。どうすればサウンドでこれを行うことができますか...誰かアイデアはありますか?
1 に答える
特定のサウンド キューを再生するボタンや、さまざまなキューのボタンのセットを公開するだけの Java アプリケーションを作成するのは非常に簡単です。
おそらく、アプリケーションを実行したままにして、ボタンを押す適切なタイミングを待って、ほぼ瞬時に応答を得るでしょう。Swing ライブラリを使用してボタンを作成し、javax.sound.sampled.Clip を使用してサウンドをメモリに保持し、コマンドで再生します。ただし、キューを最大音量で再生するだけで本当に何もする必要がないため、これを行うためのさらに簡単なオーディオ オブジェクトが存在する可能性があります。また、JavaFX は GUI ボタンに使用され始めています。
Java から iTunes またはブラウザの音量を下げる方法がわかりません。これは、それができないと言っているわけではありません。他の誰かがその方法を言える場合は、間違いなくその答えを選択してください。私はまだそれをしようとしていません。
しかし、数回練習すれば、iTunes やブラウザの音量を手動で上げ下げすることはそれほど難しくないかもしれません。音量を上げたり下げたりしても、音楽アプリケーションを停止して再起動するほど混乱しないという利点があります。そのため、アプリの音量を下げ (メインのコンピューターの音量ではありません!)、マウスを Java ボタン アプリに合わせてクリックし、サウンドが終了するのを待ってから、音楽アプリの音量を元に戻します。理想的ではありませんが、必要なサウンドを生成する役割を果たします。
もう 1 つのアイデアとして、音楽アプリを制御する代わりに、アプリの出力を再生する前に Java 経由でルーティングする方法があります。その場合、ボタンを 1 回押すだけでシーケンス全体を処理できます。サウンド ストリームの入力を処理するために使用されるメイン ツールとして TargetDataLine を調べますが、適切なミキサー ラインまたはポートを識別する方法がわかりません。セットアップとOS、サウンドカードまたはサウンドシステムに合わせてカスタマイズする必要がある可能性があります.
楽しいアイデア!これには、別の言語でも機能する可能性があります。たとえば、HTML5 を備えた別の小さなブラウザー ウィンドウと、効果音を起動するためのボタンです。