我无法从HTTP Live Stream(使用m3u,m3u8播放列表文件)获取iPhone上的歌曲标题和作曲家名称。我已经尝试从此站点tempomix radio获得它。这是流媒体的链接-http://stream21.group-network.net:9012

我正在尝试使用下一个代码:

        AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
    _player = [[AVPlayer playerWithPlayerItem:playerItem] retain];

    _player.actionAtItemEnd = AVPlayerActionAtItemEndNone;
    [_player addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:NULL];
    [_player addObserver:self forKeyPath:@"currentItem" options:NSKeyValueObservingOptionNew context:NULL];
    [_player addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:NULL];


然后在这里等待回调:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {


当回调发生时-我检查AVPlayerStatus并运行播放。
收音机播放良好-但永远不会观察到ValueValueForKeyPath。

我知道这个问题看起来与this question类似,但描述的方法对我不起作用。

有任何想法吗?谢谢。

最佳答案

ID3标签与您链接到的流无关。 SHOUTcast / Icecast不使用ID3标签。

您将必须解析SHOUTcast元数据协议。我已经在这里为PHP回答了这个问题:https://stackoverflow.com/a/4914538/362536原则是相同的,无论使用哪种语言。

另见http://www.smackfu.com/stuff/programming/shoutcast.html

10-08 05:17
查看更多