問題タブ [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.
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
です。
java - 複数のファイルを Audio InputStream に追加する方法
私はオーディオ プレーヤーを持っています。単一のファイルをオーディオ入力ストリームに追加する方法を見つけましたが、追加したいファイルの配列リストがあります。どうすればいいですか?
java - クリップは mp3 を再生できますが、OpenAL は無音になります (Java)
sound.sampled.Clip を使用して mp3 ファイルをテストすると、期待どおりに再生されます。ただし、OpenALでテストすると、音も例外もありません。
(私は JMF の mp3plugin.jar と OpenAL ライブラリを使用しています)
これは単純なコードで説明するのが難しい問題です。なぜなら、openal を使用するには多くのライブラリと少しのセットアップ コードが必要だからです。しかし、私は最善を尽くしました。
これがコンソールに表示されるすべてです:
なぜ OpenAL を使用する必要があるのか疑問に思われている方のために説明すると、OpenAL は、Clip の方がはるかに扱いやすいパン操作とピッチ操作の両方を提供します。私は渡した任意の wav ファイルをパンおよびピッチすることができましたが、Clip はどちらもできないことがよくあります (また、パン/ゲインを調整するときに遅延が発生しますが、OpenAL はインスタントです)。
java - Java AudioInputStream 負のバイト数でスキップをサポートする方法
methodで負のバイト数をスキップしようとしていますAudioInputStream
skip(long bytes)
。
問題はしようとしています (少数のバイトとしましょう...):
この回答で説明されているように、常に 0 を返しますJava AudioInputStream は負のバイト数でスキップし、常に 0 を返します
負のバイト数または後方のようなものもサポートする実装を作成する必要があります。
github のライブラリの完全なコードは次のとおりです。
私がしているのは、ユーザーがオーディオをスキップするたびにラインを再作成することです。これは、もちろん、はるかにうまくできるときに非常に遅くなります...単に前後に移動するだけです。今では前方のみをサポートしています...