今回のチュートリアルは、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


ピックアップ記事

.htaccess の落とし穴

2010年04月14日 過去Blog
落とし穴ってほとではありませんが、少しハマってしまったので、恥ずかしながらメモ・・・。 あるサイトをつくっていたのですが、トップページを表示するたびにベーシック認証の画面が表示されるので、おかしいなぁと思い、それを解決しようとサーバ内を調べていました。 もともと .htaccess を置く必要がないディレクトリなので、サーバ上には、そんなファイルはありませんでした。 絶対に認証は、かけていない!…
「.htaccess の落とし穴」をはてなブックマークに追加

facebook 開発者登録出来ない

2011年05月25日 過去Blog
以下のエラーが出る時 この操作を実行するには、アカウントの認証を完了する必要があります。携帯電話またはcredit cardを追加してアカウント認証を行ってください。 「いいね」が5名以上もしくはfacebookアカウントを取得して10ヶ月以上経っている方でなければ 許可が出ないという制約があるようです。 いくら登録や認証をしても意味がないみたいです。 というか、制約にひっかかっているなら、…
「facebook 開発者登録出来ない」をはてなブックマークに追加

twitterの登録メールの確認がエラーになる件

2011年01月04日 過去Blog
twitterで登録メールの確認手続きを行っていた際に以下のようなエラーが出ました。 「Hold up! Sorry, the profile you were trying to view has been suspended due to strange activity 」 なにもオカしいことはしていないはずなので、困っていたのですが、原因は単純でした。 twitterのヘルプページに書い…
「twitterの登録メールの確認がエラーになる件」をはてなブックマークに追加

Xcode 4 移行ガイド

2011年03月22日 過去Blog
http://sazameki.jp/translations/xcode4/IDEs/Conceptual/Xcode4TransitionGuide/ atlanta insurance how to loose weight…
「Xcode 4 移行ガイド」をはてなブックマークに追加

お名前.com VPS サーバでphp アップデート

2011年04月25日 過去Blog
まず、ファイアーウォールからSSHを許可 http://guide.onamae-server.com/vps/3/31/81/124/ ステム設定 > セキュリティー > アップデートからアップデートなし(上級者向け)に変更。これでyumコマンドが使えるようになる。 サーバ管理画面上から システム設定>ユーザ>一般アカウント で一般ユーザのアカウントを作成。 Macのターミナ…
「お名前.com VPS サーバでphp アップデート」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy