id3lib では読めないタグがあった
でも taglib を使ったら読めた。とりあえず taglib に乗り換えよう。どっちのライブラリでも v2.4 にすると読読めない。
(use gauche.uvector) (use gauche.charconv) (use c-wrapper) (c-load-library "libtag") (c-load-library "libtag_c") (c-include "taglib/tag_c.h") (define (s value) (cast <string> value)) (define (album tag) (s (taglib_tag_album tag))) (define (title tag) (s (taglib_tag_title tag))) (define (artist tag) (s (taglib_tag_artist tag))) (define (to_tag fn) (taglib_file_tag (taglib_file_new fn)))
というのを用意して、
(define tags (map to_tag (sys-glob "*/*.mp3"))) ;; => (いっぱい...) (map title tags) ;; => ("title1" "曲名" "曲名" ...) (map artist tags) ;; => ("アーティスト" "歌手" "だれだれ" ...)
なんて具合で読めるかどうかを確認しました。
c-wapper すごいです。