How to get the music list for IOS-music player
Last Update:2017-06-14
Source: Internet
Author: User
<span id="Label3"></p><p><p></p></p><p><p><strong>Method One:</strong></p></p><p><p><strong>The method is to get the path of the music by getting to the sandbox path (use this method to put the music into the Sandbox)</strong></p></p> <ol class="dp-objc" start="1"> <li class="alt"><li class="alt"><span class="keyword">Nsfilemanager *manager = [nsfilemanager<span class="vars"> defaultmanager]; </span></span></li></li> <li><li><span class="keyword">NSString *documents = [nshomedirectory ()<span class="vars"> stringbyappendingpathcomponent:<span class="string">@ "Documents"]; </span></span></span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "%@", Documents); </span></li></li> <li><li><span class="keyword">NSString *localstr = [[nsstring<span class="vars"> alloc]<span class="vars"> initwithformat:<span class="string">@ "%@/music", Documents]; </span></span></span></span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "%@", localstr); </span></li></li> <li><li><span class="keyword">Nsarray *localarr = [[nsarray<span class="vars"> alloc]<span class="vars"> init]; </span></span></span></li></li> <li class="alt"><li class="alt">Localarr = [manager<span class="vars"> contentsofdirectoryatpath:localstr<span class="vars"> error<span class="keyword">: nil]; </span></span></span></li></li> <li><li><span class="keyword">for (<span class="keyword">int i = <span class="xcodenumber">0;i < Localarr<span class="xcodeconstants">. count;i++) {</span> </span> </span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">nsstring *str<span class="xcodenumber">1 = [[nsstring<span class="vars"> alloc]<span class="vars"> init]; </span></span></span></span></li></li> <li><li>str<span class="xcodenumber">1 = [localarr<span class="vars"> objectatindex:i]; </span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">MyMusic *music = [[mymusic<span class="vars"> alloc]<span class="vars"> init]; </span></span></span></li></li> <li><li>Music<span class="xcodeconstants">. Path = [nsstring<span class="vars"> stringwithformat:<span class="string">@ "%@/%@", localstr,str<span class="xcodenumber">1]; </span></span></span></span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "%@", music<span class="xcodeconstants">. path); </span></span></li></li> <li><li><span class="keyword">if ([[str<span class="xcodenumber">1<span class="vars"> pathextension]<span class="vars"> isequaltostring:<span class="string">@ "mp3"]) {</span> </span> </span> </span> </span></li></li> <li class="alt"><li class="alt">Nsuinteger a = str<span class="xcodenumber">1<span class="xcodeconstants">. length-<span class="xcodenumber">4; </span></span></span></li></li> <li><li>Nsrange range = {<span class="xcodenumber">0,a}; </span></li></li> <li class="alt"><li class="alt">str<span class="xcodenumber">1 = [str<span class="xcodenumber">1<span class="vars"> substringwithrange:range]; </span></span></span></li></li> <li><li>Music<span class="xcodeconstants">. name = str<span class="xcodenumber">1; </span></span></li></li> <li class="alt"><li class="alt">[<span class="keyword">self<span class="xcodeconstants">. Musicarray<span class="vars"> addobject:music]; </span></span></span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt">}</li></li> </ol><p><p></p></p><p><p></p></p><p><p>Method Two:</p></p><p><p><strong>By accessing the ipod Music library (this method seems to have to be debugged by the real machine, because there is no ipod music library on the Emulator)</strong></p></p><p><p></p></p> <ol class="dp-objc" start="1"> <li class="alt"><li class="alt"><span class="keyword">Mpmediaquery *listquery = [mpmediaquery<span class="vars"> songsquery]; <span class="comment"> Playlistsquery</span> </span></span></li></li> <li><li><span class="keyword">Nsarray *playlist = [listquery<span class="vars"> collections]; </span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">Mpmediaquery *listquery = [[mpmediaquery<span class="vars"> alloc]<span class="vars"> init]; </span></span></span></li></li> <li><li><span class="keyword">Nsarray *playlist = [listquery<span class="vars"> items]; </span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">For (<span class="keyword">mpmediaplaylist *list in Playlist) {</span></span></li></li> <li><li><span class="keyword">Nsarray *songs = [list<span class="vars"> items]; </span></span></li></li> <li class="alt"><li class="alt">for <span class="keyword">(<span class="keyword">mpmediaitem *song in Songs) {</span> </span></li></li> <li><li><span class="keyword">nsstring *title = [song<span class="vars"> valueforproperty:mpmediaitempropertytitle]; </span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">nsstring *artlist = [song<span class="vars"> valueforproperty:mpmediaitempropertyartist]; </span></span></li></li> <li><li><span class="keyword">if (artlist! =<span class="keyword"> Nil &&![ self <span class="keyword"><span class="xcodeconstants">. Musicarray<span class="vars"> containsobject:title]) {</span> </span> </span> </span> </span></li></li> <li class="alt"><li class="alt">[<span class="keyword">self<span class="xcodeconstants">. Musicarray<span class="vars"> addobject:title]; </span></span></span></li></li> <li><li>}</li></li> <li class="alt"><li class="alt">}</li></li> <li><li>}</li></li> </ol><p><p></p></p><p><p><br><strong>Method Three:</strong></p></p><p><p><strong>scan Local Music path (this method just puts the music into Xcode.)</strong></p></p> <ol class="dp-objc" start="1"> <li class="alt"><li class="alt"><span class="keyword">NSString *song = [[nsstring<span class="vars"> alloc]<span class="vars"> init]; </span></span></span></li></li> <li><li><span class="keyword">NSString *singer = [[nsstring<span class="vars"> alloc]<span class="vars"> init]; </span></span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">UIImage *img;</span></li></li> <li><li><span class="keyword">NSString *resourcepath = [[nsbundle<span class="vars"> mainbundle]<span class="vars"> resourcepath]; </span></span></span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "resourcepath =%@", resourcepath); </span></li></li> <li><li><span class="comment">Remove all MP3 files from the resource directory</span></li></li> <li class="alt"><li class="alt"><span class="comment">Nsarray *filearray = [[nsbundle mainbundle] pathsforresourcesoftype:@ "mp3" indirectory:resourcepath];</span></li></li> <li><li><span class="keyword">Nsarray *mp<span class="xcodenumber">3Array = [nsbundle<span class="vars"> pathsforresourcesoftype:<span class="string">@ "mp3"<span class="vars"> indirectory:[[nsbundle<span class="vars"> mainbundle] <span class="vars">resourcepath]]; </span></span></span></span></span></span></span></li></li> <li class="alt"><li class="alt"></li></li> <li><li><span class="keyword">For (<span class="keyword">NSString *filepath in MP<span class="xcodenumber">3Array) {</span> </span></span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "%@", filePath); </span></li></li> <li><li><span class="keyword">Nsurl *fileurl = [nsurl<span class="vars"> fileurlwithpath:filepath]; </span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">avurlasset *mp<span class="xcodenumber">3Asset = [avurlasset<span class="vars"> urlassetwithurl:fileurl<span class="vars"> options<span class="keyword">: nil]; </span></span></span></span></span></li></li> <li><li>for <span class="keyword">(<span class="keyword">nsstring *format in [mp<span class="xcodenumber">3Asset<span class="vars"> availablemetadataformats]) {</span> </span> </span> </span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "%@", format); </span></li></li> <li><li>for <span class="keyword">(<span class="keyword">avmetadataitem *metadataitem in [mp<span class="xcodenumber">3Asset<span class="vars"> metadataforformat:format]) {</span> </span> </span> </span></li></li> <li class="alt"><li class="alt">NSLog (<span class="string">@ "%@", metadataitem); </span></li></li> <li><li>img =<span class="keyword"> nil; </span></li></li> <li class="alt"><li class="alt"><span class="keyword">if ([metadataitem<span class="xcodeconstants">. Commonkey<span class="vars"> isequaltostring:<span class="string">@ "title"]) {</span> </span> </span> </span></li></li> <li><li>Song = (<span class="keyword">nsstring *) metadataitem<span class="xcodeconstants">. value; </span></span></li></li> <li class="alt"><li class="alt">}<span class="keyword">Else <span class="keyword">if ([metadataitem<span class="xcodeconstants">. Commonkey<span class="vars"> isequaltostring:<span class="string">@ "artist"]) {</span> </span> </span> </span> </span></li></li> <li><li>Singer = (<span class="keyword">nsstring *) metadataitem<span class="xcodeconstants">. value; </span></span></li></li> <li class="alt"><li class="alt">}</li></li> <li><li><span class="keyword">Else <span class="keyword">if ([metadataitem<span class="xcodeconstants">. Commonkey<span class="vars"> isequaltostring:<span class="string">@ "artwork"]) {</span> </span> </span> </span> </span></li></li> <li class="alt"><li class="alt"><span class="keyword">NSData *data = (nsdata*) (metadataitem<span class="xcodeconstants">. value); </span></span></li></li> <li><li>img = [UIImage<span class="vars"> imagewithdata:data]; </span></li></li> <li class="alt"><li class="alt">}</li></li> <li><li></li></li> <li class="alt"><li class="alt"><span class="comment">or else if ([metadataitem.commonkey isequaltostring:@ "albumname"]) {</span></li></li> <li><li><span class="comment">//albumname = (nsstring *) metadataitem.value; </span></li></li> <li class="alt"><li class="alt"><span class="comment">// } </span></li></li> <li><li><span class="comment">or else if ([metadataitem.commonkey isequaltostring:@ "artwork"]) {</span></li></li> <li class="alt"><li class="alt"><span class="comment">//nsdictionary *dict = (nsdictionary *) metadataitem.value; </span></li></li> <li><li><span class="comment">//nsdata *data = [dict objectforkey:@ "data"]; </span></li></li> <li class="alt"><li class="alt"><span class="comment">//<pre name= "code" class= "html" >if ([metadataitem.commonkey isequaltostring:@ "artwork"]) {</span></li></li> <li><li><span class="keyword">nsdictionary *dict = (<span class="keyword">nsdictionary *) metadataitem<span class="xcodeconstants">. value; </span></span></span></li></li> <li class="alt"><li class="alt"><span class="keyword">NSData *data = [dict<span class="vars"> objectforkey:<span class="string">@ "data"]; </span></span></span></li></li> <li><li>Image = [UIImage<span class="vars"> imagewithdata:data]; </span></li></li> <li class="alt"><li class="alt"><span class="keyword">self<span class="xcodeconstants">. Albumimage<span class="xcodeconstants">. Image = image; </span></span></span></li></li> </ol><p><p><br>Image = [UIImage imagewithdata:data]; Self.albumImage.image = image; }} MyMusic *music = [[mymusic alloc] init]; Music.name = song; Music.singername = singer; Music.path = filePath; Music.image = img; NSLog (@ "%@,%@", music.name, music.singername); [self.musicarray addobject:music]; } }}</p></p><p><p></p></p><pre><pre></pre></pre><p><p>This method about getting music album Pictures I found the way to find the night is the following sentence</p></p><p><p></p></p><p><p><span class="string"> <span class="keyword"> <span class="string"> <span class="keyword">if ([metadataitem<span class="xcodeconstants">. Commonkey<span class="vars"> isequaltostring:<span class="string">@ "artwork"]) {</span> </span> </span> </span></span></span></span></p></p> <ol class="dp-objc" start="1"> <ol class="dp-objc" start="1"> <li><span class="keyword">Nsdictionary *dict = (<span class="keyword">nsdictionary *) metadataitem<span class="xcodeconstants">. value; </span></span></span></li> <li class="alt"><span class="keyword">NSData *data = [dict<span class="vars"> objectforkey:<span class="string">@ "data"]; <span class="comment"> @ "value"</span> </span> </span></span></li> <li class="alt">Image = [UIImage<span class="vars"> imagewithdata:data]; </span></li> <li class="alt"><span class="keyword">Self<span class="xcodeconstants">. Albumimage<span class="xcodeconstants">. Image = image; </span></span></span></li> </ol> </ol><p><p>How to get the music list for IOS-music player</p></p></span>