0

バイト配列をファイルに書き込みたい。これは、Web http://allmybrain.com/2012/03/16/quick-convert-raw-g711-ulaw-audio-to-a-au-file/のコードです。

    import struct
    header = [ 0x2e736e64, 24, 0xffffffff, 1, 8000, 1 ]
    o=open('out.au','wb')
    o.write ( struct.pack ( ">IIIIII", *header ) )
    raw = open('in.raw','rb').read()
    o.write(raw)
    o.close()

そして、私は Java に変換しました:

            byte []  header= {   0x2e736e64, 24, 0xffffffff, 1, 8000, 1 };
        FileOutputStream out = new FileOutputStream(file);
        out.write(header);

しかし、それはエラーです。それを修正するのを手伝ってもらえますか。ありがとう

4

1 に答える 1

6

Pythonコードでは、8ビットバイトではなく32ビット整数を書き込んでいます。このコードでも同じ結果が得られます:

 byte []  header= {   0x2e, 0x73, 0x6e, 0x64,
                      0x0,  0x0,  0x0,  24,
                      -1,  -1,    -1,   -1,
                      0,   0,     0,    1,
                      0,   0,     0x1f, 0x40,
                      0,   0,     0,    1 };
 FileOutputStream out = new FileOutputStream(file);
 out.write(header);
于 2012-05-05T14:30:44.263 に答える