2015-04-14 14 views
8

Desidero ottenere informazioni sulle tracce dalle intestazioni dei file m3u non da id3Tags. Nelle proprietà timedMetaData di AVPlayer è fornito solo l'analisi id3Tag.Come analizzare il file m3u con AVPlayer

Come posso ottenere il titolo, artista, url ecc dal seguente file M3U con AVPlayer

#EXTM3U 
#EXT-X-ALLOW-CACHE:NO 
#EXT-X-TARGETDURATION:11 
#EXT-X-MEDIA-SEQUENCE:0 
#EXTINF:10,title="Dark Horse",artist="Katy Perry/Juicy J",url="song_spot=\"M\" MediaBaseId=\"1971116\" itunesTrackId=\"0\" amgTrackId=\"-1\" amgArtistId=\"0\" TAID=\"35141\" TPID=\"23894643\" cartcutId=\"0729388001\" amgArtworkURL=\"http://assets.iheart.com/images/1080/MI0003667474\" length=\"00:03:32\" unsID=\"-1\"" 
http://chunks.ihrhls.com/1469/GqsS8fnz2S6-301028-9984.aac 
#EXTINF:10,title="Dark Horse",artist="Katy Perry/Juicy J",url="song_spot=\"M\" MediaBaseId=\"1971116\" itunesTrackId=\"0\" amgTrackId=\"-1\" amgArtistId=\"0\" TAID=\"35141\" TPID=\"23894643\" cartcutId=\"0729388001\" amgArtworkURL=\"http://assets.iheart.com/images/1080/MI0003667474\" length=\"00:03:32\" unsID=\"-1\"" 
http://chunks.ihrhls.com/1469/spXO68wER45-301029-9984.aac 
#EXTINF:10,title="Dark Horse",artist="Katy Perry/Juicy J",url="song_spot=\"M\" MediaBaseId=\"1971116\" itunesTrackId=\"0\" amgTrackId=\"-1\" amgArtistId=\"0\" TAID=\"35141\" TPID=\"23894643\" cartcutId=\"0729388001\" amgArtworkURL=\"http://assets.iheart.com/images/1080/MI0003667474\" length=\"00:03:32\" unsID=\"-1\"" 
http://chunks.ihrhls.com/1469/RSEeNpIOEHk-301029-10031.aac 
+0

Hai trovato un metodo per ottenere i metadati dalla playlist utilizzando AVPlayer nativo iOS? –

risposta

4

È possibile ottenere le informazioni di traccia usando AVURLAsset

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL URLWithString:url] options:nil]; 
NSArray *keys = @[@"playable", @"tracks", @"duration"]; 

[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^() { 
    for (NSString *thisKey in keys) { 
     NSError *error = nil; 
     AVKeyValueStatus keyStatus = [asset statusOfValueForKey:thisKey error:&error]; 
     if (keyStatus == AVKeyValueStatusFailed) { 
      //handle error 
     } 
    } 
}]; 

anche dare un'occhiata a questo answer a ottieni titolo, album, ecc.