問題タブ [javax.sound.sampled]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
263 参照

java - Javax クリップ setMicrosecondPosition を理解できません。私は何が欠けていますか?

オーディオ クリップに 1 分(60*1000*1000 microseconds)を追加して開始すると、初回のみ目的の結果が得られます。つまり、オーディオ ファイルの正しいポイントに到達しています。次にオブジェクトに対して getMicrosecondPosition を呼び出すと、Clip何も追加していないかのようにマイクロ秒の位置が取得されます。この動作のサンプル スニペットと出力を添付しました。私が間違っていることをよく理解できません。

出力は

0 投票する
0 に答える
288 参照

java - javax.sound.sampled - オーディオ サンプルを繰り返し開始しようとしても機能しない

私は小さなドラム シーケンサー、16 ステップ/小節と 16 の楽器 (= ドラム サンプル) を備えた roland tr808 模造品をプログラミングしています。ユーザーは 16x16 のパターンを作成できる GUI を持っています。

ただし、サンプルが立て続けに 2 回以上再生される場合、多くの場合、再生されるのは 1 回だけです。たとえば、ステップ 1、5、9、13 にバスドラムがあり、テンポは 130BPM です。1 と 9 で BD だけを再生することもあれば、5 や 13 で BD を再生することもあります。サンプルが非常に短い場合やテンポが遅い場合、パターンのすべてのステップが正しく再生される可能性が高くなります。そのため、まだ終了していないサンプルをもう一度再生しようとすると、オーディオ ラインが気に入らないと思います。

しかし、実際には、コードでそれを考慮したと思っていました。誰かが私のコードの何が問題なのか教えてくれたら、本当にありがたいです。

これは、Andrew Thompson によって提案された私の完全なコードで、インターネットからいくつかのサンプルを取得するように変更されています。ただし、ロードには少し時間がかかります。問題の原因となっている部分は、おそらく Instrument クラスの play() メソッドです。

サンプルの品質はかなり疑わしいですが、特にバスドラムのサンプルは、私の問題を非常によく表しています。

0 投票する
0 に答える
83 参照

java - Java Voice サーバーが機能しない

音声サーバーを作成しようとしていますが、サーバーがこのエラーをスローしています"javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 8000.0 Hz, 8 bit, mono, 1 bytes/frame, not supported." . これが私のコードです、よろしくお願いします

0 投票する
0 に答える
56 参照

java - Java ボイスチャット エラー

ボイスチャットプログラムを作っています。音声用とメッセージ用の 2 つのサーバーがあります。2 人を接続すると、このエラーが発生します。よろしくお願いします。クライアントコード、ClientAudioコード、クライアント受信コードを添付しました

エラーを呼び出す

コード

0 投票する
1 に答える
689 参照

java - Java ボイスチャットラグ

私はボイス チャット/メッセンジャー プログラムを作成しています。チャットで 1 人の人と音声をやり取りすることができましたが、1 秒追加すると音声が遅れて途切れてしまいます。問題は Client Audio Receive クラスにあると思います。そうでない場合は、残りをペーストビンにリンクします。

サーバー側の音声コードはこちら

クライアント側のオーディオ入力コードはこちら

0 投票する
1 に答える
1281 参照

java - サウンドを録音しようとしたときの javax.sound.sampled.LineUnavailableException

Java ボイス チャット プログラムを作成していますが、サーバー側の音声クラスがこのエラーをスローしています。

このコード行でエラーがスローされています

コード:

0 投票する
1 に答える
660 参照

java - Java clip.open が無期限にハングする

.wav ファイルを開いて、クリップを使用して再生しようとしています。しかし、myClip.open(...) を呼び出すと、スレッドがフリーズして再開しません。エラーはスローされません。これが私のコードの簡単なバージョンです:

編集: 私のコードの代替バージョン(これも機能しません):

出力:

これの原因はわかっていますが、スレッドが永遠にフリーズする方法がわかりません。コンピューターのサウンド ドライバーが時々動作を停止し、どのプログラムからのサウンドも再生されなくなるため、フリーズします。約2〜3秒後にclip.openメソッド(またはスレッド)を強制的にタイムアウトさせる方法が必要です。別のスレッドで clip.start() を呼び出すと機能しますが、クリップが開かれていないためサウンドが再生されません。そして、clip.open(...) を含むスレッドは、clip.start() を呼び出した後でも永久に実行されます。

0 投票する
1 に答える
102 参照

java - SourceDataLine で再生される生成されたサウンドがぼやけている

同時トーンのセットをリアルタイムで生成しようとしています。しかし、プログラムが生成するすべての音は「ぼやけている」か、「静的」であるか、バックグラウンドで「キーキー」のように聞こえることさえあります。これは、低音域で特に顕著です。コードは次のとおりです。

このプログラムから出力される音を録音してみましたが、波が少しギザギザに見えます。しかし、生成された波をプログラムから直接印刷すると、完全に滑らかに見えます。私が生成する音は、スピーカーから出てくる音と一致していないようです。誰かが私が間違っていることをキャッチできますか?