4

我正在寻找一些解决方案来从我的流http://vibesradio.org:8002/中获取元数据信息,以显示在我正在开发的应用程序的 UILabel 中。

提前致谢。

4

1 回答 1

6

这是答案,堆栈中有一些部分答案,所以我提交了完整的解决方案:

首先在 viewDidLoad 我们需要添加可观察的元数据对象:

 [playerItem addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew   context:NULL];

现在,我们只需要 UILabel 和一个函数来显示元数据,假设创建了 UIlabel nowPlaying,我们添加以下代码:

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

if ([keyPath isEqualToString:@"timedMetadata"])
{
    playerItem = object;

    for (AVMetadataItem* metadata in playerItem.timedMetadata)
    {
        NSLog(@"\nkey: %@\nkeySpace: %@\ncommonKey: %@\nvalue: %@", [metadata.key description], metadata.keySpace, metadata.commonKey, metadata.stringValue);
        NSString *edited = [metadata.stringValue stringByReplacingOccurrencesOfString:@"_" withString:@" "];
        self.nowPlaying.text = edited;
    }
  }
}

就是这样,现在您应该显示您的流信息。

于 2012-11-23T20:24:41.187 回答