2008年12月18日
FreeDBからCD情報を取得するためのDISCID算出
ウルトラご無沙汰。
WindowsMediaPlayerなどでは、突っ込んだCDの内容を勝手に調べて、そのアルバム名とかアーティスト情報とか、曲名とかを表示してくれる。これはもちろんCDにその内容が書き込まれているわけではなくて、CDに収録された曲の長さと数の情報から、Internetを通して情報を取得し、それを表示するのだ。
自作のアプリケーションに、この、CDから情報を取得する機能をつけようと思った。
CDをPCに突っ込んで、Explorerで内容を見ると、Track01.cdaといったファイル名のファイルがトラック数だけ存在するのがわかる。これがWindowsが仮想的にCDのTOC情報をファイルとして扱えるように見せている仮装TOCファイルだ。一曲分44バイト。CD一枚分のTOCから、あるアルゴリズムに基づいてDISC_IDを算出してやると、それをもとにFreeDBサーバに対して問い合わせをかけて、CD情報を取得することができる。
で、そのDISC_IDの取得だが、Posix系のOSとかでは簡単に取得するプログラムが流通しているけれども、Windows環境、しかも自分の開発言語であるDelphiにはそんなものない。無いものは作るのがMZユーザDelphiユーザ。早速情報を検索する。続きを読む