iTunes COM APIを使ってアプリを作ってみる

iTunesを使って音楽を再生してたら、
「15秒戻る」、「30秒進む」
ということがしたいなぁ
と思った。


iTunesには外部操作させるAPIがたしかあったろうと思ったので、
それを使うことにした。


JScriptC#C++とかからさわれるらしいので、
一番簡単そうなC#からツールを作ってみようと。


一番難しかったのが、
VisualC#のプロジェクトで参照を追加するところw


いくつかやり方があるのだろうけど、

ここで何を追加したいいか分からなかったのだが、
今回はiTunesCOMなので、

  • COMタブを選択
  • iTunesがインストールしてあれば、iTunes 1.13 Type Libraryの同じようなのがあるはず


そうすれば、参照設定のところにiTunesLibっていうのが追加されるはず。

iTunes = new iTunesApp();
iTunes.OnPlayerPlayEvent += new iTunesLib._IiTunesEvents_OnPlayerPlayEventEventHandler(this.iTunes_OnPlayerPlayEvent);
iTunes.OnPlayerStopEvent += new iTunesLib._IiTunesEvents_OnPlayerStopEventEventHandler(this.iTunes_OnPlayerStopEvent);
nowPlay.Text = iTunes.CurrentTrack.Name;
before30.Enabled = true;
before15.Enabled = true;
after15.Enabled = true;
after30.Enabled = true;

後は各ボタンのところに下記のロジックを追加させて

if (iTunes.PlayerState == ITPlayerState.ITPlayerStatePlaying)
{
    iTunes.PlayerPosition += time;
}

ほぼこれだけでOK。


最終的にできあがったアプリは

基本的なコントロールiTunesでやればいいし、
無い機能だけを実装で、うむ、便利だw
自分で作ったのでうれしさも倍増かなw