iPodをつないでMac本体のiTunesで聞いてる場合、リアルタイムに情報を取るコードをちょっと書いてみた。普段Perlであまり書かないのでコードが汚いとか言うのは勘弁ね。
use Mac::iTunes;
use Mac::iPod::DB;
my $controller = Mac::iTunes->controller;
$current = $controller->current_track_name;
print $current.">>";
my $db = new Mac::iPod::DB("/Volumes/coo's_iPod/iPod_Control/iTunes/iTunesDB");
foreach my $pl ($db->playlists) {
foreach my $sid ($pl->songs) {
foreach my $sd ($db->song($sid)->title) {
# $flag = utf8::is_utf8($sd);
if ($current eq $sd) {
printf "Artist: %s title: %s album: %s?n",
$db->song($sid)->artist(), $db->song($sid)->title(), $db->song($sid)->album();
exit();
}
}
}
}
確かiPodで表示される楽曲タイトルの文字コードはUTF-8のはずなのになぜか文字化けしとる...。直接タイトルの文字列をUTF-8かよ?と聞いてみたらflagがたたない...。いったいどの文字コードなんだろう...