首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MetaData获得MPMoviePlayerController

从MetaData获得MPMoviePlayerController
EN

Stack Overflow用户
提问于 2011-12-23 14:14:44
回答 1查看 3.9K关注 0票数 6

好的,我使用MPMoviePlayerController从一个URL获得了一个Live。

代码语言:javascript
复制
Player = [[MPMoviePlayerController alloc] 
               initWithContentURL:[NSURL URLWithString:@"MY_URL_HERE_I_REMOVED"]];
Player.movieSourceType = MPMovieSourceTypeStreaming

现在,流提供元数据(我相信每个人都这么称呼它)。例如:轨道名称等

我想要得到这个信息并在标签上显示出来。

我不知道如何得到它,我不能改变从MPMoviePlayerController和搜索了几个小时后,我发现了MPMoviePlayerController类的参考,但不知道如何使用来获取这些信息。

很好,如果您可以提到如何使用通知也触发每次这些数据变化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-15 10:16:20

假设您已经知道从流中发送哪种元数据(如果不知道,请使用像VLC这样的媒体播放器查看),您必须首先注册一个通知以按时间间隔获取元数据,然后使用一个方法来处理它们。

从通知开始,只是

代码语言:javascript
复制
 [[NSNotificationCenter defaultCenter] addObserver:self
                                          selector:@selector(MetadataUpdate:)
                                              name:MPMoviePlayerTimedMetadataUpdatedNotification
                                            object:nil];

在MPMoviePlayerController分配之后。

然后讨论MetadataUpdate方法

代码语言:javascript
复制
- (void)MetadataUpdate:(NSNotification*)notification
{
    if ([streamAudioPlayer timedMetadata]!=nil && [[streamAudioPlayer timedMetadata] count] > 0) {
        MPTimedMetadata *firstMeta = [[streamAudioPlayer timedMetadata] objectAtIndex:0];
        metadataInfo = firstMeta.value;
    }
}

其中streamAudioplayer是您的MPMoviePlayerController,metadataInfo是存储值的NSString。以上将获得当前正在播放的歌曲的艺术家和轨道信息。

这是由shoutcast或icecast流发送的标准元数据的情况。(不能替别人说话,因为我还没试过)

请注意,每个流可以处理和发送不同的元数据。因为streamAudioPlayer timedMetadata是一个NSArray,所以你可以

代码语言:javascript
复制
NSArray *metaArray = [streamAudioPlayer timedMetadata];
NSLog (@"%i", [metaArray count]); //to see how many elements in the array
MPTimedMetadata *firstMeta = [[streamAudioPlayer timedMetadata] objectAtIndex:0];

然后使用调试控制台使用键、键空间、时间戳和值属性显示元数据的内容。

以上都只是一个例子。没有一种方法可以处理元数据。详细资料可参阅

https://developer.apple.com/library/ios/#DOCUMENTATION/MediaPlayer/Reference/MPTimedMetadata_Class/Reference/Reference.html

作为MPTimedMetadata类的参考,从那里.密码启动!

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8617067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档