1

私は純粋な Ruby の WAV ファイルの読み取り/書き込みライブラリを構築しており、Ruby の機能をより深く学んでいます。String.unpack('s*')個々のオーディオ サンプルを符号付き整数の配列に取り出すために使用できるため、現在 16 ビット オーディオで問題なく動作します。ただし、24 ビット オーディオをどのように処理するかについて頭を悩ませています。その場合の各サンプルの長さは 3 バイトです。その場合、どのパック/アンパック文字列をお勧めしますか?(パディングなどを使用して)アプローチを大幅に変更する必要があるでしょうか?

4

1 に答える 1

2

使用unpack("s+")したように、サンプルはビッグエンディアンであると思います。これはそれほど速くはありませんが、実行可能なソリューションです。

>> "ABCDEF".scan(/.../).map {|s| (s.reverse + 0.chr ).unpack("V")}.flatten
=> [4276803, 4474182]    #=> [0x414243, 0x444546] in HEX
于 2010-01-25T02:04:44.083 に答える