【问题标题】:Access meta data of currently played track (other than iPodMusicPlayer)访问当前播放曲目的元数据(iPod 音乐播放器除外)
【发布时间】:2012-11-28 00:35:45
【问题描述】:

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

MPMusicPlayerController *controller = [MPMusicPlayerController iPodMusicPlayer];

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

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

【问题讨论】:

    标签: ios ios5 ios6 mpmusicplayercontroller


    【解决方案1】:

    不确定您要查找的内容,但您可能可以使用 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, ...
            }
         }
    }
    

    【讨论】:

    • 我正在寻找当前正在播放的曲目...所以就像一首歌曲正在通过 Pandora 播放一样,我想获取与之关联的元数据。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-05-17
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多