ctypesでmp3infpのメモ
タイトル「まぶた」、アーティスト「arp」、というID3v1+v2タグが入ったmab.mp3というファイルをカレントディレクトリにおいて、Pythonインタラクティブを起動。
mp3infptest>python Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from ctypes import * >>> mp3infp = windll.mp3infp >>> mp3infp.mp3infp_Load(0, "mab.mp3") 0 >>> mp3infp.mp3infp_mp3_GetTagType() 83 >>> hex(83) #値はbitのorで、入っているタグのフォーマットを表す。 #0x03はIDv1+IDv2を、0x50はIDv1.1+IDv2.3を表している。 '0x53' >>> pstr = c_char_p() #文字列の先頭ポインタ型を... >>> mp3infp.mp3infp_GetValue("AFMT", byref(pstr)) 1 #byrefで渡して中にポインタを入れてもらう. >>> pstr.value 'MPEG1.0 Layer3 188Kb/s(VBR) 44100Hz J-Stereo 11513frames' >>> mp3infp.mp3infp_GetValue("INAM_v2", byref(pstr)) 1 >>> pstr.value '\x82\xdc\x82\xd4\x82\xbd' >>> print pstr.value # mp3infp.dllは、システムエンコーディング # (=SJIS)でタグを返す。ID3v2のUnicodeタグでも。 まぶた
ちなみに,mp3infp.dllはmp3infpをインストールすればsystem32に入ってるからそのまま使える。
mp3infp.dllがexportしている関数とか使用する定数の一覧は、mp3infpのSDKのmp3infp_ExportFunc.hを見れば判る。