5

次のコードを使用する場合: http://pastebin.com/5iVnttiP

次のエラーが表示されます。

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.AIComputer.model.Recorder.<init>(Recorder.java:124)
    at com.AIComputer.AIComputer.main(AIComputer.java:7)

ここでいくつかの調査を行ったところ、すべてのサウンド カードがすべてのフォーマットをサポートしているわけではないことがわかりましたが、このデモを実行する と、次のようになります。まったく同じパラメーター (リニア、16000、16、符号付き、リトル エンディアン、ステレオ) を使用して録音します。

ここで何が間違っているのかわかりません (また、私はまだ Java コーディングの初心者であるため)。

どんな助けでも大歓迎です!

4

1 に答える 1

9

あなたのコードのどの行からこの例外がスローされるかを言うことができますか?

LineUnavailableExceptionのドキュメントによると

この状況は、要求された回線が別のアプリケーションによってすでに使用されている場合に最も一般的に発生します。

コードで2行開いています。2番目のものを開こうとすると、最初のものの存在がそれをブロックします。

于 2012-08-19T20:37:34.407 に答える