流数据(艺术家/标题)不在xcode中的AVPlayerItemTrack数组中显示

时间:2018-01-19 13:24:39

标签: ios xcode avplayeritem

我有以下代码,当在大多数(Shoutcast)流媒体服务器上使用时,返回艺术家/歌曲元数据,但在特定服务器上它不起作用,只是显示字母“' t' !

由于NSLog目前还没有为我工作(尽管有各种各样的改变,我无法让它工作(Xcode 9.2)),我还是在黑暗中。

- (void)FetchMeta
{
    for (AVPlayerItemTrack *item in player.currentItem.tracks)
    {
        if ([item.assetTrack.mediaType isEqual:AVMediaTypeAudio])
        {
            NSArray *meta = [playerItem timedMetadata];
            for (AVMetadataItem *metaItem in meta)
            {
                NSString *source = metaItem.stringValue;
                if(![source isEqualToString:self.songInfo.text])
                {
                    self.songInfo.text = [source stringByAppendingString:@"  "];
                    //self.songInfo.text = @"Test";
                    [self LoadArtistImage];
                }
                NSLog(@"meta %@\n%@",source,metaItem.extraAttributes);
            }
        }
    }
}

我知道我在代码的正确部分,因为如果我取消注释//self.songInfo.text = @"Test";行,我会在显示器上看到它应该出现歌曲元数据,但是已经在3小时坚固,不能让它显示元数据,没有NSLog真的没有帮助。

更新:我已经能够查询服务器并且可以看到差异,但我仍然不知道如何告诉代码查看正确的字段...我的理解是数据被放入数组中(我认为)但这是错误的领域。也许它总是只占用最后一块?要明确的是,我正在寻找它来采取' StreamTitle'字段。

工作服务器响应:

Input #0, mp3, from 'http://server:port':
  Metadata:
    icy-notice1     : <BR>This stream requires <a href="http://www.winamp.com">Winamp</a><BR>
    icy-notice2     : SHOUTcast DNAS/posix(linux x86) v2.5.1.724<BR>
    icy-name        : Station Name
    icy-genre       : 80s, Pop
    icy-br          : 128
    icy-sr          : 44100
    icy-url         : http://website.com
    icy-pub         : 1
    StreamTitle     : Rod Stewart - Lost In You

非工作服务器响应:

Input #0, mp3, from 'http://server:port/':
  Metadata:
    icy-notice1     : <BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
    icy-notice2     : SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
    icy-name        : Station Name
    icy-genre       : Various
    icy-url         : www.website.com
    icy-pub         : 1
    icy-br          : 128
    StreamTitle     : Theory of a Deadman - Rx
    StreamUrl       : t

进一步澄清。 &#39;工作服务器&#39;输出正常显示&#39; StreamTitle&#39;字段使用显示的代码,非工作服务器显示最后一个字段&#39; StreamUrl&#39;这不是理想的领域。

任何指针?

非常感谢。

0 个答案:

没有答案