5

ファイルがあり.wavます。そのサウンド ファイルから PCM データを取得して、サウンドから個々のデータ チャンクを取得して処理できるようにしたいと考えています。

しかし、私はそれを行う方法がわかりません。誰かがそれを行う方法を教えてもらえますか? 私はこれまでこれを行ってきました:

public class test
{

    static int frameSample;
    static int timeofFrame;
    static int N;
    static int runTimes;
    static int bps;
    static int channels;
    static double times;
    static int bufSize;
    static int frameSize;
    static int frameRate;
    static long length;

    public static void main(String[] args)
    {
        try
        {
            AudioInputStream ais = AudioSystem.getAudioInputStream(new File("music/audio.wav"));
            AudioInputStream a;
            int numBytes = ais.available();
            System.out.println("numbytes: "+numBytes);
            byte[] buffer = new byte[numBytes];
            byte[] buffer1=new byte[numBytes] ;
            int k=0;
            int count=0;
            while(count!=-1){
                count=ais.read(buffer, 0, numBytes);
            }
            long value = 0;

            for (int i = 0; i < buffer.length; i++)
            {
               value = ((long) buffer[i] & 0xffL) << (8 * i);
               System.out.println("value: "+value);
            }
        } catch(Exception e) {

        }
    }
}
4

2 に答える 2

6

これは、Java Sound API を使用して行うことができます。

  • を使用して、ファイルからAudioSystemを取得AudioInputStreamします。
  • のストリームをクエリしますAudioFormat
  • フォーマットに合わせて を作成しbyte[]ます。EG 8 ビットモノはbyte[1]. 16ビットステレオですbyte[4]
  • ストリームをチャンクで読み取るbyte[]と、フレームごとにサウンドが含まれます。
  • さらに処理を進めます..
于 2012-08-25T12:07:01.607 に答える