2013-11-03 41 views
2

我正在尝试获取元数据,例如我的网址的艺术家名称/曲目名称,但是我没有看到,要得到它,我不太确定我缺少什么,音频加载并播放就好:从流中获取元数据问题?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    self.mainTitle.text = _stationName; 

    NSString *u = @"http://pub1.sky.fm:80/sky_solopiano"; 

    NSURL *url = [NSURL URLWithString:u]; 

    radiosound = [[AVPlayer alloc] initWithURL:url]; 

    [radiosound play]; 

} 

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    AVPlayerItem * item = (AVPlayerItem*)object; 
    NSLog(@"%@", item.timedMetadata); 


} 

更新每在这个问题上成员的建议,我试图实现

AVAsset *info = radiosound.currentItem.asset; 

    NSLog(@"%@",info); 

而不是

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
     AVPlayerItem * item = (AVPlayerItem*)object; 
     NSLog(@"%@", item.timedMetadata); 


    } 

但这只是回报,我已经知道,并没有刷新数据,它目前返回:

<AVURLAsset: 0x109c7ccf0, URL = http://pub1.sky.fm:80/sky_solopiano> 

回答

0

你重写/实现对NSObject的观察者挂钩,但你没有设置属性观察对于AVPlayer任何地方,所以这种方法永远不会开火。

我想你真正感兴趣的是:

radiosound.currentItem.asset 

。 。 。您可以在alloc/init'd radiosound实例后立即使用它。

这一类的可用属性是here

要获取文档给定类:

  • 谷歌类的名字 - 它几乎总是返回结果。在Xcode
  • 选项单击类
  • 使用文档浏览器像Dash

键 - 值观察(KVO)

你可能不需要志愿在这种情况下,然而,它的东西,你一定要检查。有关更多信息,请参阅Apple文档以及大量教程。也许this one

+0

我刚刚尝试了你的建议,而我确实收到了一些数据,它只是以下内容:''不是实际的元我正在寻找的数据,还有其他建议吗? – vzm