今回のチュートリアルは、ipod(iphone&ipad未検証)のミュージックプレイヤーで再生中の曲の情報を取り出して、表示させる方法を説明します。
XCode を起動し、View Based Application で新規プロジェクトを作成します。 このチュートリアル内では、「Song」という名前で保存しました。 音楽、動画などといったメディアアイテムは、ユーザがデスクトップのiTunesと同期した際にデバイス上にコピーされます。 デバイス上のメディアアイテムの一式をiPodライブラリ(iPod library)と呼びます。これらのアイテムを扱うために、MediaPlayerフレームワークを追加します。XCode 内のフレームワークに、「MediaPlayer.framework」を追加してください。 SongViewController.h を開き、以下のコードを追加してください。

#import <UIKit/UIKit.h>

#import <MediaPlayer/MediaPlayer.h>

@interface SongViewController : UIViewController {

IBOutlet UILabel *songTitleLabel;

IBOutlet UILabel *songArtistLabel;

IBOutlet UILabel *songAlbumLabel;

}

@property (nonatomic, assign) IBOutlet UILabel *songTitleLabel;

@property (nonatomic, assign) IBOutlet UILabel *songArtistLabel;

@property (nonatomic, assign) IBOutlet UILabel *songAlbumLabel;

@end

上記のコードは、簡単かと思いますが、最初にMediaPlayer.framework が使えるようにインポートしています。そして、取得した曲情報を view上に表示させるために、ラベルを3つ設定しています。表示内容は、ラベル名を見れば分かりますが、曲のタイトル、アルバム名、アーティスト名です。 次に、songViewController.m を開き、以下のコードを追加します。

#import “SongViewController.h”

@implementation SongViewController

@synthesize songArtistLabel, songTitleLabel, songAlbumLabel;

さらに、viewDidLoad メソッドを以下のように編集します。

MPMusicPlayerController *player = [MPMusicPlayerController iPodMusicPlayer];

MPMediaItem *nowPlayingItem = [player nowPlayingItem];

songTitleLabel.text = [nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];

songAlbumLabel.text = [nowPlayingItem valueForProperty:MPMediaItemPropertyAlbumTitle];

songArtistLabel.text = [nowPlayingItem valueForProperty:MPMediaItemPropertyArtist];

現在再生中のミュージックプレイヤーを設定し、再生中の曲情報を取得しています。
(今回は、取得していませんが、歌詞を表示する場合は、MPMediaItemPropertyLyrics を使います。MPMediaItem の各プロパティについて詳しく知りたい方は、一番下に参考サイトを載せているので、参照してください。)
ここで取得した曲情報を view 上に表示させるために、Interface Builder を起動(SongViewController.xib をダブルクリック)し、view 上にラベルを三つ配置します。
そして、配置したラベルとXCode上に宣言したIBOutlet を接続します。
ここまで完了したら、ビルド&実行します。デバイス上でアプリケーションを起動すると、プレイヤーで再生中の曲が表示されます。
注意点としては、シミュレータには、再生中の音楽情報がないので、何も表示されません。
また、再生中の曲に歌詞が設定されているにもかかわらず、歌詞が表示されないのは、ipodから一度貸し表示させることで、歌詞が取得可能になると思います。が、これでは、あまり実用的ではありませんね。。。AVURLAssetのlyricsプロパティなら取得可能(?)。

MPMediaItemクラス

参考サイト http://developer.apple.com/library/ios/#documentation/MediaPlayer/Reference/MPMediaItem_ClassReference/Reference/Reference.html http://blog.livedoor.jp/second_flush/archives/51141605.html#MPMediaItemPropertyPersistentID

この投稿へのコメント

    1. またまた見たひとより より:

      songViewController.m
      メソッドvalueForPropertyが必要ではありませんか?
      これがないと警告がでます。
      songTitleLabel.text
      = [nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];

      songAlbumLabel.text
      = [nowPlayingItem valueForProperty:MPMediaItemPropertyAlbumTitle];

      songArtistLabel.text
      = [nowPlayingItem valueForProperty:MPMediaItemPropertyArtist];

    2. admin より:

      またまた見たひとより さん>ご訪問&貴重なコメントありがとうございます。
      基本的には、私の手元で動作確認したものを記事にしているのですが、バージョンの違いなどに関する警告でしょうか。該当メソッドが実装されてないことに関する警告でしょうか。

      先ほど、xcode3.2.5で動作確認してみましたが、私の手元のiphoneでは警告もなく正常に動きました。

      ん〜なんででしょう。。。

      本件とは関係ないかと思いますが、
      [nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];
      などのvalue…の前にスペースが入ってなかったので、修正しました。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

[6]:SQLiteを使ってToDoリストアプリを作成(1)

2010年12月01日 過去Blog
このブログのチュートリアルを順に読み進めてくださった方なら、このチュートリアルがUITableVIewを優先的に取り組んできたことをご存知かと思います。 この理由としては、多くのアプリケーションが、このシンプルなコントロールを使って開発されているからです。 今回はUITableViewの最後のチュートリアルとして、今までのチュートリアルで学んできたことをすべて使い、SQLiteの技術を追加し、ToDoリストを作成していきます。 また、多くの機能を持ったテーブルセルを追加し、iPhoneが提供している他のコントロールについても学んでいきます。 過去の記事を既読の方を想定していますので、まだの方は、そちらの記事に先に目を通されることをおすすめします。 このチュートリアルは、いくつかのシリーズから成り立つので、過去の記事に比べ少し長くなります。この最初のチュートリアルで学ぶことは以下です。 今回学ぶこと: Navigation-Based Application の新規作成 データベースの作成 プロジェクトにデータベースの追加 SQLite3のフレームワークを追加 ToDoクラスのオブジェクトの作成 データベースの初期化 …
「[6]:SQLiteを使ってToDoリストアプリを作成(1)」をはてなブックマークに追加

Linux ユーザー一覧の確認

2010年02月02日 過去Blog
[hogehoge@localhost ~]$ cat /etc/passwd http://kazmax.zpp.jp/lin/etc_passwd.html is garcinia cambogia safe to take…
「Linux ユーザー一覧の確認」をはてなブックマークに追加

Macで顔文字を使う

2011年02月28日 過去Blog
windowsでは使う事も多かった顔文字もmacでは、特に使わないままで、やってきましたが、最近macでメールする事も増えてきて、顔文字を使いたいと思うようになったので、その設定のメモです。 1.顔文字辞書ダウンロード まず、顔文字辞書をダウンロードします。 今回は、こちらとこちらを利用させてもらいました。 2.ことえりに登録する ダウンロードしたファイルを解凍します。 その中から、必要な辞書…
「Macで顔文字を使う」をはてなブックマークに追加

iTunes Store の購入履歴とオーダー(注文)番号を表示する方法

2011年01月12日 過去Blog
iTunes Store の購入履歴とオーダー(注文)番号を表示する方法
iTunes Store の購入履歴とオーダー(注文)番号を表示する方法 iTunes がインストールされているコンピュータをお使いの場合は、こちら をクリックすると、 iTunes を起動して購入履歴を表示できます。Apple ID とパスワードの入力を求められます。 次の手順で iTunes Store および Mac App Store で購入したコンテンツのリストを表示することもできます。…
「iTunes Store の購入履歴とオーダー(注文)番号を表示する方法」をはてなブックマークに追加

UIViewControllerのインスタンスメソッドとタイミング

2011年01月13日 過去Blog
どのタイミングに実行されるメソッドなのかを調べるには、以下のようにすれば、デバッガにNSLogが出力されるタイミング(メソッドが実行されるタイミング)を調べることが出来ます。 - (void)loadView { [super loadView]; NSLog(@"loadView"); } - (void) viewWillAppear:(BOOL)animated { NSLog(@…
「UIViewControllerのインスタンスメソッドとタイミング」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy