1

我无法从 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 并运行播放。收音机播放良好 - 但永远不会来observeValueForKeyPath。

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

有任何想法吗?谢谢。

4

1 回答 1

1

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

您将不得不解析 SHOUTcast 元数据协议。我在这里为 PHP 回答了这个问题: https ://stackoverflow.com/a/4914538/362536 无论是什么语言,主体都是相同的。

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

于 2012-07-31T14:17:58.207 回答