使用MPMoviePlayer从无线电流中获取元数据? (IOS)

时间:2013-03-15 15:24:34

标签: ios objective-c cocoa-touch mpmovieplayercontroller avaudioplayer

我正在使用 MPMoviePlayer 进行广播流式传输,我需要获取当前的曲目信息。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

首先,您需要设置一个NSNotification,以便您可以按特定时间间隔获取数据,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self
                                      selector:@selector(StreamMeta:)
                                      name:MPMoviePlayerTimedMetadataUpdatedNotification
                                      object:nil];

接下来,您将创建该方法。我将使用 streamMPMoviePlayer 作为MPMoviePlayerController metaString 的名称作为NSString来存储元数据值:

- (void)StreamMeta:(NSNotification*)notification
{
  if ([streamMPMoviePlayer timedMetadata] != nil) {
      MPTimedMetadata *meta = [[streamMPMoviePlayer timedMetadata] objectAtIndex:0];
      metaString = meta.value; // gives the NSString the artist/song information
  }
  else {
     // No metadata available
  }
}