Google ChromeのJavaScriptを使用して一連のバイトから、ArrayBufferから数値を生成して、MP3タグ情報を取得しようとしています。ID3v2仕様では、タグサイズを取得するには、特定の場所で4バイトを取得し、それらから整数値を取得する必要があると規定されています。ただし、次の場合を除きます。
ID3v2タグサイズは4バイトでエンコードされ、最上位ビット(ビット7)はすべてのバイトでゼロに設定され、合計28ビットになります。ゼロにされたビットは無視されるため、257バイトの長さのタグは$ 00 000201として表されます。
これを行うための素朴な方法は、各バイトを調べて各ビットの値を取得し、元の4バイトの7ビットから生成された新しい4バイトの値を生成することです。たとえば、これらの4つの元のバイトがあります。 :
0111 1111 0111 1111 0111 1111 0111 1111
新しいArrayBufferを作成し、各ビットをループして以下を生成します。
0000 1111 1111 1111 1111 1111 1111 1111
次に、 Uint32Arrayを使用してこの32ビット整数から整数値を計算します
これを行う簡単な方法はありますか?