我无法从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