现在,我正在使用以下方法获取当前播放歌曲的信息:
MPMusicPlayerController *controller = [MPMusicPlayerController iPodMusicPlayer];
但是,这仅适用于实际通过 iPod 播放器播放的曲目。
我想知道是否有办法从接管 iPod 音乐播放器底座的其他应用程序中获取相同类型的信息。Spotify、Downcast、Instacast 等应用。
现在,我正在使用以下方法获取当前播放歌曲的信息:
MPMusicPlayerController *controller = [MPMusicPlayerController iPodMusicPlayer];
但是,这仅适用于实际通过 iPod 播放器播放的曲目。
我想知道是否有办法从接管 iPod 音乐播放器底座的其他应用程序中获取相同类型的信息。Spotify、Downcast、Instacast 等应用。
经过进一步调查,似乎只能从 iPod 播放器中获取元数据。
不完全确定您要查找的内容,但您可能可以使用 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, ...
}
}
}