0

これまでに作成したライブラリには、ファイルまたはInputStream. OGG vorbis データがByteBufferあり、最初にファイルに書き込むことなく PCM にデコードする必要があります。

4

2 に答える 2

3

この問題には 2 つの部分があるようです。1) Java Sound で OGG Vorbis フォーマットを処理する。2) ファイルを避ける。

(1) の場合、Java Sound API を使用すると、サービス プロバイダ インターフェイスを介して追加のフォーマットを追加できます。アイデアは、エンコーダー/デコーダーを Jar に入れ、ファイルの標準パスとフォーマットを使用して、エンコード/デコードを行うクラスを識別することです。

(2) の場合、AudioSystem 静的関数の関連するメソッドに InputStream と必要な AudioFormat を提供するだけです。EG (疑似コード..)

byte[] b = byteBuffer.array();
ByteArrayInputStream bais = new ByteArrayInputStream(b);
InputStream is = new InputStream(bais);
AudioInputStrream aisOgg = AudioSystem.getAudioInputStream(is);        
AudioInputStrream aisPcm = AudioSystem.
    getAudioInputStream(pcmAudioFormat, aisOgg);
于 2010-10-21T12:52:53.100 に答える
1

InputStream のサブクラスである ByteArrayInputStream を使用できます。ストリームが非常に大きい場合は、おそらくファイルに書き込む必要があります。

于 2010-10-21T12:55:04.333 に答える