是否有可能获得MPMediaItem的视频相关元信息?

时间:2015-03-26 16:32:44

标签: ios video properties metadata mpmediaitem

我正在与MPMediaItems合作,特别是我试图在用户的设备上获取视频列表。现在,来自iTunes的视频将被锁定,因此无法从第三方应用播放,但用户添加的视频(如家庭电影)可以播放,甚至来自iTunes的视频也可以查询和显示其元信息。 / p>

但在这里我被绊倒了:我似乎无法找到这些文件的任何视频特定元信息?

MPMediaItem类引用包含一长串可以访问的属性,但它们主要是特定于音频的。 MPMediaItemPropertyAlbumTitleMPMediaItemPropertyComposer之类的内容。甚至还有一个特定于播客特定属性的部分,但我似乎无法找到类似"季节数"或"剧集编号"或"显示标题"。这些信息显然是由iTunes存储的,它由内部视频应用程序显示,但我无法找到任何方式来获取它。

这是我在类引用中可以找到的唯一字段: NSString *const MPMediaItemPropertyPersistentID ; // filterable NSString *const MPMediaItemPropertyAlbumPersistentID ; // filterable NSString *const MPMediaItemPropertyArtistPersistentID ; // filterable NSString *const MPMediaItemPropertyAlbumArtistPersistentID ; // filterable NSString *const MPMediaItemPropertyGenrePersistentID ; // filterable NSString *const MPMediaItemPropertyComposerPersistentID ; // filterable NSString *const MPMediaItemPropertyPodcastPersistentID ; // filterable NSString *const MPMediaItemPropertyMediaType ; // filterable NSString *const MPMediaItemPropertyTitle ; // filterable NSString *const MPMediaItemPropertyAlbumTitle ; // filterable NSString *const MPMediaItemPropertyArtist ; // filterable NSString *const MPMediaItemPropertyAlbumArtist ; // filterable NSString *const MPMediaItemPropertyGenre ; // filterable NSString *const MPMediaItemPropertyComposer ; // filterable NSString *const MPMediaItemPropertyPlaybackDuration; NSString *const MPMediaItemPropertyAlbumTrackNumber; NSString *const MPMediaItemPropertyAlbumTrackCount; NSString *const MPMediaItemPropertyDiscNumber; NSString *const MPMediaItemPropertyDiscCount; NSString *const MPMediaItemPropertyArtwork; NSString *const MPMediaItemPropertyLyrics; NSString *const MPMediaItemPropertyIsCompilation ; // filterable NSString *const MPMediaItemPropertyReleaseDate; NSString *const MPMediaItemPropertyBeatsPerMinute; NSString *const MPMediaItemPropertyComments; NSString *const MPMediaItemPropertyAssetURL; NSString *const MPMediaItemPropertyIsCloudItem ; // filterable

我非常确信这些信息不能通过MPMediaItemProperties值获得,但可以通过其他任何方式访问吗?是否有一种全面的方法来访问这些信息,如this answer,我不完全理解,但似乎很有希望,或者开发人员完全不可能看到什么节目/季节视频来自?

编辑:最近这一点变得尤为重要,因为iTunes的最新版本现在甚至不再提供那些特定于音频的字段(例如"专辑"或"艺术家")编辑视频文件时。转到"获取信息"现在,在iTunes中的视频文件显示视频特定字段,这意味着此更新后输入的视频现在似乎在第三方应用中完全无法排序。

......除非有人有想法?

编辑2:在我的研究中,我遇到了AVMetadataItem课程,我之前从未听说过,特别是AVMetadataiTunesMetadataKey选项(class reference)。他们似乎不包括节目,季节或剧集信息,但他们确实有一些视频特定字段,如AVMetadataiTunesMetadataKeyDirector。是否有其他一些使用此类或其他与视频相关的类,如AVAsset,可能会对我正在寻找的信息进行迂回访问?

编辑3:当我找到iTunes Library Framework时,我抱有希望,其中包括一个ITLibMediaItemVideoInfo类,这正是我正在寻找的。但是,它似乎只是Mac版本,而且我需要在iOS上运行...有人有机会在iOS上访问这些信息吗?

1 个答案:

答案 0 :(得分:0)

这可能会帮助您准确找到您所需要的内容:https://code.google.com/p/subler/source/browse/trunk/mp4v2+wrapper/MP42AVFImporter.m

以下是您可能感兴趣的与AVMetadataKeySpaceiTunes相关的相关部分的重点:

...
@"Description",         @"desc",
@"Long Description",    @"ldes",
@"Media Kind",          @"stik",
@"TV Show",             @"tvsh",
@"TV Episode #",        @"tves",
@"TV Network",          @"tvnn",
@"TV Episode ID",       @"tven",
@"TV Season",           @"tvsn",
@"HD Video",            @"hdvd",
@"Gapless",             @"pgap",
@"Sort Name",           @"sonm",
@"Sort Artist",         @"soar",
@"Sort Album Artist",   @"soaa",
@"Sort Album",          @"soal",
@"Sort Composer",       @"soco",
@"Sort TV Show",        @"sosn",
@"Category",            @"catg",
@"iTunes U",            @"itnu",
@"Purchase Date",       @"purd",
...