問題タブ [audioinputstream]

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 投票する
1 に答える
235 参照

java - FloatBuffer の AudioInputStream を取得する

FloatBuffer毎秒数回呼び出される 1024 のフロートを含む着信オーディオ データを取得するコールバックがあります。しかしAudioInputStream、私のシステムはそれらでのみ動作するため、が必要です。

float を 16bit PCM isgned オーディオ データに変換することは問題ではありませんが、そこから InputStream を作成することはできません。AudioInputStream コンストラクターは既知の長さのデータのみを受け入れますが、一定のストリームがあります。AudioSystem.getAudioInputStreamオーディオ データを含む PipedInputStream をフィードすると、「java.io.IOException: mark/reset not supported」がスローされます。

何か案は?


これが私の現在のコードです:

JnaJack ライブラリを使用しますが、データがどこから来るかは問題ではありません。ちなみに、バイトへの変換は問題ありません。そのデータを a に直接書き込むと、SourceDataLine正しく動作します。しかし、私はデータが必要 AudioInputStreamです。

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

java - 複数のファイルを Audio InputStream に追加する方法

私はオーディオ プレーヤーを持っています。単一のファイルをオーディオ入力ストリームに追加する方法を見つけましたが、追加したいファイルの配列リストがあります。どうすればいいですか?

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

java - クリップは mp3 を再生できますが、OpenAL は無音になります (Java)

sound.sampled.Clip を使用して mp3 ファイルをテストすると、期待どおりに再生されます。ただし、OpenALでテストすると、音も例外もありません

(私は JMF の mp3plugin.jar と OpenAL ライブラリを使用しています)

これは単純なコードで説明するのが難しい問題です。なぜなら、openal を使用するには多くのライブラリと少しのセットアップ コードが必要だからです。しかし、私は最善を尽くしました。

これがコンソールに表示されるすべてです:

なぜ OpenAL を使用する必要があるのか​​疑問に思われている方のために説明すると、OpenAL は、Clip の方がはるかに扱いやすいパン操作とピッチ操作の両方を提供します。私は渡した任意の wav ファイルをパンおよびピッチすることができましたが、Clip はどちらもできないことがよくあります (また、パン/ゲインを調整するときに遅延が発生しますが、OpenAL はインスタントです)。

0 投票する
2 に答える
321 参照

java - Java AudioInputStream 負のバイト数でスキップをサポートする方法

methodで負のバイト数をスキップしようとしていますAudioInputStream skip(long bytes)

問題はしようとしています (少数のバイトとしましょう...):

この回答で説明されているように、常に 0 を返しますJava AudioInputStream は負のバイト数でスキップし、常に 0 を返します

負のバイト数または後方のようなものもサポートする実装を作成する必要があります。


github のライブラリの完全なコードは次のとおりです。

私がしているのは、ユーザーがオーディオをスキップするたびにラインを再作成することです。これは、もちろん、はるかにうまくできるときに非常に遅くなります...単に前後に移動するだけです。今では前方のみをサポートしています...