5

私のアプリケーションでは、freeTTS パッケージから javastreamingaudio クラスを継承し、オーディオ処理のためにバイト配列を SourceDataLine に送信する書き込みメソッドをバイパスします。データ行に書き込む代わりに、このバイト配列と後続のバイト配列をバッファーに書き込み、それをクラスに取り込んでサウンドに処理しようとします。私のアプリケーションはサウンドを float の配列として処理するので、float に変換して処理しようとしますが、常に静的なサウンドが返されます。

これが進むべき道だと確信していますが、途中で何かが欠けています。サウンドはフレームとして処理され、各フレームはバイトのグループであることを知っているので、私のアプリケーションではバイトをフレームに処理する必要があります。私はこれを正しい方法で見ていますか?助けてくれてありがとう。

4

1 に答える 1

12

まず、バイト配列を InputStream に変換します。次に、AudioSystem を使用して、その Inputstream から AudioInputStream を作成します。オーディオ ストリームを取得したら、基本的にオーディオを取得し、それをファイルに書き込んだり、好きなことをしたりできます。

ByteArrayInputStream oInstream = new ByteArrayInputStream(ayAudioData);
AudioInputStream oAIS = AudioSystem.getAudioInputStream(oInstream);
于 2010-05-18T12:51:58.570 に答える