Not much to say, directly on the code, the code describes in detail how to initialize, and set some common properties.
/** * Mpmusicplayercontroller used to play music in the music library*/ /** * Initialize Mpmusicplayercontroller, class method + (Mpmusicplayercontroller *) Applicationmusicplayer; Get app Player, note that this type of player cannot play in background + (Mpmusicplayercontroller *) Systemmusicplayer get system player, support background play*/Mpmusicplayercontroller*MUSICPLAYERVC =[Mpmusicplayercontroller Systemmusicplayer]; /** * Mpmusicplayercontroller Object Properties*/ //@property (nonatomic, readonly) mpmusicplaybackstate playbackstate /*Player status, enumeration type: mpmusicplaybackstatestopped: Stop playing mpmusicplaybackstateplaying: playing Mpmusicplaybackstatepau SED: Pause playback mpmusicplaybackstateinterrupted: Play interrupt Mpmusicplaybackstateseekingforward: Find forward Mpmusicplaybackstateseek Ingbackward: Looking backwards*/ if(Musicplayervc.playbackstate = =mpmusicplaybackstatestopped) {NSLog (@"Stop playing"); } /*@property (nonatomic) Mpmusicrepeatmode Repeatmode repeating mode, enumeration type: Mpmusicrepeatmodedefault: Default mode, which enables With user preferences (System music program settings) Mpmusicrepeatmodenone: Do not repeat Mpmusicrepeatmodeone: Single loop Mpmusicrepeatmodeall: Follow in the current list Ring*/Musicplayervc.repeatmode=Mpmusicrepeatmodenone; /*@property (nonatomic) Mpmusicshufflemode Shufflemode Shuffle Mode, enumeration type: Mpmusicshufflemodedefault: Default User Preferences (System music program settings) Mpmusicshufflemodeoff: Do not shuffle mpmusicshufflemodesongs: Random play by Song Mpmusicshufflemo Dealbums: Random play by album*/Musicplayervc.shufflemode=Mpmusicshufflemodeoff; /*@property (nonatomic, copy) Mpmediaitem *nowplayingitem The music item being played*/Mpmediaitem*item =Musicplayervc.nowplayingitem; /*@property (nonatomic, readonly) Nsuinteger Indexofnowplayingitem The currently playing music index in the play queue*/Nsuinteger Index=Musicplayervc.indexofnowplayingitem; /*@property (nonatomic, readonly) BOOL Ispreparedtoplay is ready for playback*/BOOL IsOK=Musicplayervc.ispreparedtoplay; /*@property (nonatomic) Nstimeinterval currentplaybacktime Current playback time, Unit: SEC*/Nstimeinterval currenttime=Musicplayervc.currentplaybacktime; /*@property (nonatomic) float currentplaybackrate current playback speed, is a playback speed magnification, 0 means pause playback, 1 for normal speed*/ floatPlayrate =musicplayervc.currentplaybackrate; /** * Common Object Methods*/ /*-(void) Setqueuewithquery: (mpmediaquery *) query uses media queue settings to play the source media queue-(void) Setqueuewithitemcollectio N: (mpmediaitemcollection *) itemcollection use media item collection to set playback source media queue-(void) Skiptonextitem next song-(v OID) skiptobeginning playback from the starting position-(void) Skiptopreviousitem previous-(void) Begingeneratingplayback Notifications turn on playback notifications, note that unlike other players, Mpmusicplayercontroller to be notified must first be turned on, the default is not notified-(void) Endgeneratingplayba Cknotifications Turn off playback notification-(void) Preparetoplay ready to play (load audio to buffer), if not ready to call the method automatically when playing using the Play method -(void) play start playback-(void) Pause pauses playback-(void) Stop playback-(void) Beginseekingforward start forward lookup (Fast forward) -(void) beginseekingbackward start backward lookup (rewind)-(void) endseeking End lookup*/ /*Notification: mpmusicplayercontrollerplaybackstatedidchangenotification playback status Change Mpmusicplayercontrollernowpla Yingitemdidchangenotification Current play audio changes mpmusicplayercontrollervolumedidchangenotification sound size change MPMediaPl Aybackispreparedtoplaydidchangenotification ready to play.*/
For example: The code below is a function of playing the system music
#import "ViewController.h"#import<MediaPlayer/MediaPlayer.h>@interfaceViewcontroller () <MPMediaPickerControllerDelegate>/** * Media selector Controller*/@property (strong,nonatomic) Mpmediapickercontroller*Mediapicker;/** * Music player*/@property (strong,nonatomic) Mpmusicplayercontroller*Musicplayer;@end@implementationViewcontroller- (void) viewdidload {[Super viewdidload]; //additional setup after loading the view, typically from a nib.}/** * Get music player*/-(Mpmusicplayercontroller *) musicplayer{if(!_musicplayer) {_musicplayer=[Mpmusicplayercontroller Applicationmusicplayer]; _musicplayer.repeatmode=Mpmusicrepeatmodenone; //turn on notifications, otherwise you won't be notified by Mpmusicplayercontroller[_musicplayer begingeneratingplaybacknotifications]; //Add notification[self addnotification]; } return_musicplayer;}/** * Media selector*/-(Mpmediapickercontroller *) mediapicker{if(!_mediapicker) { //Initialize the media selector, where the media type is music, in fact, you can choose video, broadcast, etc._mediapicker =[[Mpmediapickercontroller Alloc]initwithmediatypes:mpmediatypemusic]; //Multi-Select_mediapicker.allowspickingmultipleitems =YES; _mediapicker.prompt=@"Please select the music you want to play"; //Set Selector Agent_mediapicker.Delegate=Self ; } return_mediapicker;}/*Get Media queue*/-(Mpmediaquery *) getlocalmediaquery{Mpmediaquery*mediaqueue =[Mpmediaquery Songsquery]; for(Mpmediaitem * Iteminchmediaqueue.items) {NSLog (@"title:%@,%@", Item.title,item.albumtitle); } returnMediaqueue;}/*Get Media collection*/-(Mpmediaitemcollection *) getlocalmediaitemcollection{Mpmediaquery*mediaqueue =[Mpmediaquery Songsquery]; Nsmutablearray*arr =[Nsmutablearray array]; for(Mpmediaitem *iteminchmediaqueue.items) {[arr addobject:item]; NSLog (@"title:%@,%@", Item.title,item.albumtitle); } mpmediaitemcollection*mediaitemcollection =[[mpmediaitemcollection Alloc]initwithitems:[arr Copy]]; returnmediaitemcollection;}#pragmaMark-mpmediapickercontroller Agent//Select Done- (void) Mediapicker: (Mpmediapickercontroller *) Mediapicker didpickmediaitems: (mpmediaitemcollection *) mediaitemcollection{Mpmediaitem*mediaitem=[mediaitemcollection.items Firstobject];//The first to play a music//Note that a lot of music information such as title, album, performer, cover, length and other information can be obtained through the Mpmediaitem Valueforkey: method, but from the beginning of iOS7 have corresponding properties can be directly accessed//nsstring *title= [Mediaitem valueforkey:mpmediaitempropertyalbumtitle]; //nsstring *artist= [Mediaitem valueforkey:mpmediaitempropertyalbumartist]; //mpmediaitemartwork *artwork= [Mediaitem valueforkey:mpmediaitempropertyartwork]; //UIImage *image=[artwork Imagewithsize:cgsizemake (+)];//album PicturesNSLog (@"title:%@, Performer:%@, Album:%@", Mediaitem.title, Mediaitem.artist,mediaitem.albumtitle); [Self.musicplayer setqueuewithitemcollection:mediaitemcollection]; [Self Dismissviewcontrolleranimated:yes completion:nil];}//Cancel Selection- (void) Mediapickerdidcancel: (Mpmediapickercontroller *) mediapicker{[self Dismissviewcontrolleranimated:yes completion:nil];}#pragmaMark-Notification/** * Add notifications*/-(void) addnotification{Nsnotificationcenter*notificationcenter=[Nsnotificationcenter Defaultcenter]; [Notificationcenter addobserver:self selector: @selector (playbackstatechange:) Name: MpmusicplayercontrollerplaybackstatedidchangenotificationObject: Self.musicplayer];}/** * Play status Change notification * * @param notification notification Object*/-(void) Playbackstatechange: (Nsnotification *) notification{Switch(self.musicPlayer.playbackState) { CaseMpmusicplaybackstateplaying:nslog (@"playing ...%@", Self.musicPlayer.nowPlayingItem.title); Break; CaseMpmusicplaybackstatepaused:nslog (@"play pause."); Break; CaseMpmusicplaybackstatestopped:nslog (@"playback stops."); Break; default: Break; }}#pragmaMark-ui Event-(ibaction) Selectclick: (UIButton *sender {[self presentViewController:self.mediaPicker animated:yes completion:nil];}-(Ibaction) Playclick: (UIButton *Sender {[Self.musicplayer play];}-(Ibaction) Puaseclick: (UIButton *Sender {[self.musicplayer pause];}-(Ibaction) Stopclick: (UIButton *Sender {[Self.musicplayer stop];}-(Ibaction) Nextclick: (UIButton *Sender {[Self.musicplayer skiptonextitem];}-(Ibaction) Prevclick: (UIButton *Sender {[Self.musicplayer skiptopreviousitem];}
Avfoundation (ii)---Mpmusicplayercontroller