Hi
I am doing the tutorial here
http://code.tutsplus.com/tutorials/ios-sdk-music-library-access--mobile-6188
I have no errors and I am wondering if anyone could look at my code
Thanks
----------
I am doing the tutorial here
http://code.tutsplus.com/tutorials/ios-sdk-music-library-access--mobile-6188
I have no errors and I am wondering if anyone could look at my code
Thanks
Code:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize musicPlayer;
- (void)viewDidLoad{
[super viewDidLoad];
musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
[volumeSlider setValue:[musicPlayer volume]];
if ([musicPlayer playbackState] == MPMusicPlaybackStatePlaying) {
[playPauseButton setImage:[UIImage imageNamed:@"pauseButton.png"] forState:UIControlStateNormal];
} else {
[playPauseButton setImage:[UIImage imageNamed:@"playButton.png"] forState:UIControlStateNormal];
}
[self registerMediaPlayerNotifications];
}
- (void) registerMediaPlayerNotifications{
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver: self
selector: @selector (handle_NowPlayingItemChanged:)
name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object: musicPlayer];
[notificationCenter addObserver: self
selector: @selector (handle_PlaybackStateChanged:)
name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
object: musicPlayer];
[musicPlayer beginGeneratingPlaybackNotifications];
}
- (void) handle_NowPlayingItemChanged: (id) notification{
MPMediaItem *currentItem = [musicPlayer nowPlayingItem];
UIImage *artworkImage = [UIImage imageNamed:@"noArtworkImage.png"];
MPMediaItemArtwork *artwork = [currentItem valueForProperty: MPMediaItemPropertyArtwork];
if (artwork) {
artworkImage = [artwork imageWithSize: CGSizeMake (200, 200)];
}
[artworkImageView setImage:artworkImage];
NSString *titleString = [currentItem valueForProperty:MPMediaItemPropertyTitle];
if (titleString) {
titleLabel.text = [NSString stringWithFormat:@"Title: %@",titleString];
} else {
titleLabel.text = @"Title: Unknown title";
}
NSString *artistString = [currentItem valueForProperty:MPMediaItemPropertyArtist];
if (artistString) {
artistLabel.text = [NSString stringWithFormat:@"Artist: %@",artistString];
} else {
artistLabel.text = @"Artist: Unknown artist";
}
NSString *albumString = [currentItem valueForProperty:MPMediaItemPropertyAlbumTitle];
if (albumString) {
albumLabel.text = [NSString stringWithFormat:@"Album: %@",albumString];
} else {
albumLabel.text = @"Album: Unknown album";
}
}
- (void) handle_PlaybackStateChanged: (id) notification{
MPMusicPlaybackState playbackState = [musicPlayer playbackState];
if (playbackState == MPMusicPlaybackStatePaused) {
[playPauseButton setImage:[UIImage imageNamed:@"playButton.png"] forState:UIControlStateNormal];
} else if (playbackState == MPMusicPlaybackStatePlaying) {
[playPauseButton setImage:[UIImage imageNamed:@"pauseButton.png"] forState:UIControlStateNormal];
} else if (playbackState == MPMusicPlaybackStateStopped) {
[playPauseButton setImage:[UIImage imageNamed:@"playButton.png"] forState:UIControlStateNormal];
[musicPlayer stop];
}
}
- (void) handle_VolumeChanged: (id) notification{
[volumeSlider setValue:[musicPlayer volume]];
}
- (IBAction)volumeChanged:(id)sender{
[musicPlayer setVolume:[volumeSlider value]];
}
- (IBAction)showMediaPicker:(id)sender{
MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny];
mediaPicker.allowsPickingMultipleItems = YES;
mediaPicker.prompt = @"Select songs to play";
}
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection{
if (mediaItemCollection) {
[musicPlayer setQueueWithItemCollection: mediaItemCollection];
[musicPlayer play];
}
}
- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker{
}
- (IBAction)previousSong:(id)sender{
[musicPlayer skipToPreviousItem];
}
- (IBAction)playPause:(id)sender{
if ([musicPlayer playbackState] == MPMusicPlaybackStatePlaying) {
[musicPlayer pause];
} else {
[musicPlayer play];
}
}
- (IBAction)nextSong:(id)sender{
[musicPlayer skipToNextItem];
}
@end
----------
Code:
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface ViewController : UIViewController{
IBOutlet UIImageView *artworkImageView;
IBOutlet UISlider *volumeSlider;
IBOutlet UIButton *playPauseButton;
IBOutlet UILabel *titleLabel;
IBOutlet UILabel *artistLabel;
IBOutlet UILabel *albumLabel;
}
@property (nonatomic, retain) MPMusicPlayerController *musicPlayer;
- (IBAction)volumeChanged:(id)sender;
- (IBAction)showMediaPicker:(id)sender;
- (IBAction)previousSong:(id)sender;
- (IBAction)playPause:(id)sender;
- (IBAction)nextSong:(id)sender;
- (void) registerMediaPlayerNotifications;
@end