afplayって
MacのLeopard以降のシステムにはafplayというコマンドがついており、iTunesよりもクリアな音質で再生してくれる(らしい)。ほかにも再生速度も自由に選べるから、英語のスクリプト聞いたりするのにもいいかも。
今月のMacFanに、このafplayとオートメーターを使って、ドラッグアンドドロップするだけで高音質再生を行うアプリがついてました。でもオートメーターとか使ったことないし、Pythonの勉強もかねて、Pythonからこのafplayを使えないかなーと思ったのが最初。
afplay使うだけだと、1曲ずつ曲ファイルの指定をしなくちゃいけなかったりしたから、アルバムの曲全部再生されるようにしたかった。iTunesの曲のライブラリファイルのパスはiTunesフォルダ/アーティスト/アルバムにきちんと分けられてるから、曲まとめて再生するのも楽なんじゃないかと。スクリプト実行したら、アーティスト一覧と、アルバム一覧表示されて、番号指定すると指定したアルバムの曲すべて再生するようにしました。
でもいろいろ問題も出てきて、こんなに時間かけるつもりじゃなかったのに、こんな時間までやってしまった。かなし
問題
ってかこれが一番厄介だったんだけど、MacOSX上のファイル名って、濁点が分割されて保存されてて、pythonから得たファイル名をそのままエンコードして実行させようとするとその濁点が消えてしまって、うまくファイル名指定ができなかった。(´・ω・`)
参考にしたのは以下のサイト
ここで紹介されている関数をつかって、ユニコードの正規化、そいで濁点合体させてからファイル名指定するとうまく動いた。
ソース
あとがき
今日こそC#の勉強するつもりだったのに、意外なとこで時間食った。ってか濁点分割して保存されてるとかなんだよ。