2015-04-14 15 views
8

Tôi muốn nhận thông tin bản nhạc từ tiêu đề tệp m3u không phải từ id3Tags. Trong thuộc tính của AVPlayer là timedMetaData nó chỉ được phân tích cú pháp id3Tag.Cách phân tích tệp m3u bằng AVPlayer

Làm thế nào tôi có thể nhận được danh hiệu, nghệ sĩ, url vv từ file m3u sau đây với 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

Bạn có tìm ra phương pháp lấy siêu dữ liệu từ danh sách phát bằng ứng dụng AVPlayer gốc của iOS không? –

Trả lời

4

Bạn có thể lấy thông tin theo dõi sử dụng 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 
     } 
    } 
}]; 

Ngoài ra hãy xem tại answer này để tải tiêu đề, album, v.v.

Các vấn đề liên quan