2015-04-14 8 views
8

Ich möchte Track-Informationen von M3U Dateiheader nicht von ID3Tags erhalten. In den Eigenschaften des AVPlayers timedMetaData wird nur das ID3Tag-Parsing bereitgestellt.Wie man M3U-Datei mit AVPlayer zu analysieren

Wie kann ich Titel, Interpret, URL usw. aus folgenden M3U-Datei mit 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

Haben Sie eine Methode gefunden, um Metadaten aus Playlists mit iOS-nativem AVPlayer zu erhalten? –

Antwort

4

Sie können die Titelinformationen erhalten 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 
     } 
    } 
}]; 

Werfen Sie auch einen Blick auf diese answer mit zu Erhalten Sie Titel, Album, etc.