これまでに作成したライブラリには、ファイルまたはInputStream
. OGG vorbis データがByteBuffer
あり、最初にファイルに書き込むことなく PCM にデコードする必要があります。
2350 次
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 に答える