novi's Blog

Mac、iPod、オーディオなどの覚え書き

[UIKit] Tips 現在再生している曲を取得

MobileMusicPlayerAPIを使うと、現在再生中の曲の情報を取得できます。
ヘッダファイル(MobileMusicPlayer.h)を見ればだいたいのことは書いてありますが、取得のところでつまずいたので書いておきます。

サンプルはこの辺にあるんですが、これだとアーティスト情報しか取得できません。(後で説明。)
私もここで詰まりました。


大まかな流れはこんな感じになります。

1. 再生中の曲のindexを取得
2. IAP接続を行う。(connectionIDを取得)
3. 曲の固有ID(Identifier)を取得
4. IDからその曲の情報(アーティスト名や曲名など)を取得
5. 3に戻り、別の情報を取得

ここで、曲の情報を取得する前に必ずIDを取得しておきます。
IDは一回取得するだけで良いように思われますが、毎回取得しないと正しく曲の情報が取得できませんでした。上のサンプルも同様です。

サンプル

//曲のindexを取得
int songIndex = PCPlayerGetCurrentPlayingSong();
if (songIndex < 0) {
//再生していない
return;
}     
//IAP接続開始
int connection = PCCreateIAPConnection();
if (connection == 0) {
//再生していないか接続失敗
return;
}

//アーティストを取得
char* tmp;
ident = PCPlayerGetIdentifierAtIndex(NULL, songIndex);
tmp = PCCopyStringValueForPropertyForIdentifier(connection, kPropertyArtist, ident);
_currentArtist = [NSString stringWithUTF8String:tmp];

//曲名を取得
ident = PCPlayerGetIdentifierAtIndex(NULL, songIndex);
tmp = PCCopyStringValueForPropertyForIdentifier(connection, kPropertySongTitle, ident);
_currentTitle = [NSString stringWithUTF8String:tmp];

//接続を閉じる
PCCloseConnection(connection);


一度、情報を取得してしまえば、NSStringのオブジェクトとして初期化して普通に扱えますね。
エンコーディングはUTF8なようです。

それから、他にも曲のスキップなんかもできるみたいです。(未検証)
いずれはやってみたいと思いますが。

コメント

やっとiPod touchが帰ってきたので試してみました。

PCSetPlaybackState(NULL, kPlayerPaused);

などでコントロールOKでした。
kPlayerStoppedにすると、kPlayerPlayingで再生できなくなっちゃいますね。
pauseと再開ができれば十分なんでいいですが。
ともあれ、どうもありがとうございます。

re:

>>moyashiさん
どうもです。
pauseとplayはPCSetPlaybackStateとかですかね。
僕は曲のスキップがしたいんですが、この辺は低レベルな層なので良くわからんですね。

なるほど。

情報ありがとうございます。やっぱりナゼ?って思いましたか。これで何かできそうです。

pauseとplayができないかと思ってるんですが、AVController.hの奴はMobileMusicPlayerとは関係無いみたいですし。でもplayaudioでやっているから方法はあるんでしょうね。

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://novi.10.dtiblog.com/tb.php/181-c626f00b

 | HOME | 

プロフィール


novi


Author:novi
学生。♂。
飽きやすいのでネタがころころ変わります。最近は iPhone の hack と工作。










月別アーカイブ


検索フォーム


今日の献立


DTIミニモブログ


DTIブログ
ブログでアフィリエイト


DTIブログポータルへ

このブログを通報

カレンダー

08 | 2008/09 | 10
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

Twitter


follow novi_ at http://twitter.com


カテゴリー


最近のエントリー


最近のコメント


最近のトラックバック


なかのひと


ジオターゲティング


ジオターゲティング


リンク


RSSリンク


PoweredBy

Powered By DTIブログ