【C#】iTunes COM Interface & Gapi.NET
5月からWeb系会社に転職するんで、必要に迫られてC#の復習。
でも普通に勉強なんてしてらんないんで、メンテナンスがてらにいじってる。
ってことでITunEsTooLの処理一部。
たぶんもう一生使わない。
iTunes COMとGapi.NETがキーとなる感じ。
・曲情報を取得(iTunes COM)
int highID; int lowID; iTunesApp app = new iTunesApp(); IITFileOrCDTrack file = null; foreach (IITTrack files in app.libraryPlaylist.Tracks) { try { file = (IITFileOrCDTrack)files; } catch (Exception) { continue; } //get_ITObjectPersistentIDHighの引数はIITTrack、IITFileOrCDTrackどっちでもOK highID = itunes.get_ITObjectPersistentIDHigh(file); lowID = itunes.get_ITObjectPersistentIDLow(file); }
ループでIITTrackでなくIITFileOrCDTrackにすると暗黙の型変換を行ってくれるんだけど、
編集不可能なファイルがあったりすると落ちる(マジでココの人ありがとう
だから明示的にキャストしてtry catchで囲ってる感じ(なにがあるかわかんねーからExceptionでcatchしてる、プログラマ失格。
get_ITObjectPersistentIDHighについては後述。
・任意の曲情報を取得(iTunes COM)
IITTrack track; IITTrackCollection trackCol; track = trackCol.get_ItemByPersistentID(highID,lowID);
iTunesの外部ソフトって再生中に何かしらするってものが多い。わざわざ再生なんかしたくねー曲がいっぱいあるからiTunes COMを読み漁ったらget_ItemByPersistentIDってのがあった。Name(名前検索)、PlayOrder(曲順)とかもあるけど、重複曲があったり、曲順とか常に変更するから全く使い物にならん。ItemByPersistentIDって名前から永続的に持ってる固有のID的な感じで読みとれた(恐らくTOEIC100点台の英語力)からこれでいいはず。引数は上記のとおりに取得出来る。
・Google検索で画像のURLを取得(Gapi.NET)
SearchResults results; results = Searcher.Search(SearchType.Image, Searchword); foreach (SearchResult result in results.Items) { //WebClient使って画像のダウンロードが可能(URLプロパティに検索結果が入ってくる }
Searchの第一引数のSearchTypeをImageにする。
一回の検索で取得可能な回数は8回まで。たしかSearchの第三引数かなんかで検索開始位置を設定出来たような。
要は無限で検索可能っぽい。
どうしてもGit使いたいからVisual Studio2013Expressをインストール中。
今後使えるプログラマはGitHuber(GitHubを使いこなす人(俺命名)かそうでない人で分けられる気がする。