上記のコードは、簡単かと思いますが、最初にMediaPlayer.framework が使えるようにインポートしています。そして、取得した曲情報を view上に表示させるために、ラベルを3つ設定しています。表示内容は、ラベル名を見れば分かりますが、曲のタイトル、アルバム名、アーティスト名です。 次に、songViewController.m を開き、以下のコードを追加します。#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
さらに、viewDidLoad メソッドを以下のように編集します。#import “SongViewController.h”
@implementation SongViewController
@synthesize songArtistLabel, songTitleLabel, songAlbumLabel;
MPMusicPlayerController *player = [MPMusicPlayerController iPodMusicPlayer];
MPMediaItem *nowPlayingItem = [player nowPlayingItem];
songTitleLabel.text = [nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];
songAlbumLabel.text = [nowPlayingItem valueForProperty:MPMediaItemPropertyAlbumTitle];
songArtistLabel.text = [nowPlayingItem valueForProperty:MPMediaItemPropertyArtist];
songViewController.m
メソッドvalueForPropertyが必要ではありませんか?
これがないと警告がでます。
songTitleLabel.text
= [nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];
songAlbumLabel.text
= [nowPlayingItem valueForProperty:MPMediaItemPropertyAlbumTitle];
songArtistLabel.text
= [nowPlayingItem valueForProperty:MPMediaItemPropertyArtist];
またまた見たひとより さん>ご訪問&貴重なコメントありがとうございます。
基本的には、私の手元で動作確認したものを記事にしているのですが、バージョンの違いなどに関する警告でしょうか。該当メソッドが実装されてないことに関する警告でしょうか。
先ほど、xcode3.2.5で動作確認してみましたが、私の手元のiphoneでは警告もなく正常に動きました。
ん〜なんででしょう。。。
本件とは関係ないかと思いますが、
[nowPlayingItem valueForProperty:MPMediaItemPropertyTitle];
などのvalue…の前にスペースが入ってなかったので、修正しました。