[Javascript] ファイルをバイナリ操作する方法 #2 アドレス操作

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

ものすごい寝グセがついても、平気に街を歩けるようになった、下駄です。
 

前回バイナリアクセスできたデータを、どう扱えばいいか今回のブログを見ると明確になります。
 

でも、データの仕様を知らなければ、どのアドレスにどんなデータが格納されているかがわかりません。

mp3のデータ仕様

mp3には、id3タグの仕様は下記リンクにかかれています。
 

http://id3.org/id3v2-accessibility-1.0
 

いきなりこんな仕様書を見てもわからない人もいるかもしれませんが、バイナリ操作をする時は、こうしたドキュメントからアドレス情報を読み取る必要があるので、自分なりにアドレス仕様を作っておくと便利かもしれませんね。
 

mp3のid3タグには、バージョンがたくさんあるので、それがまとまっている資料がなかなかネットでみつけられなかったので、
僕なりにまとめた仕様は以下の通りです。
 

 

※id2.4は現在対応中のため、仕様もまとめきれていません。
 

javascriptでバイナリのヘッダ情報を確認する方法

前回行ったバイナリアクセスの続きになりますが、
仕様に基づいたバイナリデータのヘッダ情報を取得してみたいと思います。
 

今回はmp3ファイルにアクセスしてみます。
 

 

inputタグ(type=file)で選択されたmp3ファイルのヘッダタグ情報を取得してconsoleに表示していますが、
この時に、TAGと表示されれば”id3v1″で、ID3と表示されると”id3v2″ということが分かります。
 

バイナリ解析のポイントは、仕様のアドレスから取得したデータを文字列として判定するのか、数値として計算するのかのどちらかになるので、
そうした判定関数を作っておくことであとは仕様に沿った処理をするだけで、意外と簡単に解析できてしまいます。
 

次回は、アドレスに格納された数値の計算方法をやってみたいと思います。

参考

id3v1
 

id3v2.3
 

id3v2.4
 

MP3 (MPEG Audio Layer 3) Desktopアプリケーション開発の技術情報
 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です