访问当前播放曲目的元数据(iPodMusicPlayer除外)

时间:2012-11-28 00:35:46

标签: ios ios5 ios6 mpmusicplayercontroller

现在,我正在使用以下方式获取当前播放歌曲的信息:

MPMusicPlayerController *controller = [MPMusicPlayerController iPodMusicPlayer];

但是,这仅适用于实际通过iPod播放器播放的曲目。

我想知道是否有办法从其他接管iPod音乐播放器底座的应用中获取相同类型的信息。 Spotify,Downcast,Instacast等应用

2 个答案:

答案 0 :(得分:0)

不完全确定您要查找的内容,但您可以使用AVURLAsset从实际文件中获取元数据。我用它来查找mp3和m4a文件的元数据,但可能还有其他格式。有关详细信息,请参阅文档。

AVURLAsset *asset = [[AVURLAsset alloc] initWithUrl:@"song.mp3" options:nil];
if (asset != nil)
{
    NSArray *formatArray = asset.availableMetadataFormats;
    if ([formatArray count] > 0)
    {
        NSArray *array = [asset metadataForFormat:[formatArray objectAtIndex:0];
        NSString *artist = @"";
        NSString *songTitle = @"";

        for (AVMetadataItem *metadata in array)
        {
             if ([metadata.commonKey isEqualToString:@"artist"])
                artist = metadata.stringValue;
             else if ([metadata.commonKey isEqualToString:@"title"])
                songTitle = metadata.stringValue;
             etc, ...
        }
     }
}

答案 1 :(得分:0)

经过进一步调查后,似乎只能从iPod播放器获取元数据。