private int fetchNumericMetadata(AVMetadataItem[] metadataItems, NSObject key, string keySpace) { AVMetadataItem[] entryMetadataItems = AVMetadataItem.FilterWithKey(metadataItems, key, keySpace); int entry = 0; if (entryMetadataItems.Length > 0) { entry = (int)entryMetadataItems[0].NumberValue; } return(entry); }
private string fetchStringMetadata(AVMetadataItem[] metadataItems, NSObject key, string keySpace) { AVMetadataItem[] entryMetadataItems = AVMetadataItem.FilterWithKey(metadataItems, key, keySpace); string entry = null; if (entryMetadataItems.Length > 0) { entry = entryMetadataItems[0].StringValue; } return(entry); }
private byte[] fetchThumbnailData(AVAsset asset) { AVMetadataItem[] coverArtMetadataItems = AVMetadataItem.FilterWithKey(asset.CommonMetadata, AVMetadata.CommonKeyArtwork, AVMetadata.KeySpaceCommon); byte[] thumbnailData = null; if (coverArtMetadataItems.Length > 0) { NSData artImageData = (NSData)coverArtMetadataItems[0].Value; thumbnailData = new byte[artImageData.Length]; Marshal.Copy(artImageData.Bytes, thumbnailData, 0, (int)artImageData.Length); } return(thumbnailData); }
private List <Chapter> fetchChapters(AVAsset asset) { List <Chapter> chapters = new List <Chapter>(); string[] preferred = NSLocale.PreferredLanguages; List <string> languages = new List <string>(preferred); languages.AddRange(asset.AvailableChapterLocales.Select(locale => locale.Identifier)); AVTimedMetadataGroup[] groups = asset.GetChapterMetadataGroupsBestMatchingPreferredLanguages(languages.ToArray()); foreach (AVTimedMetadataGroup group in groups) { AVMetadataItem[] item = AVMetadataItem.FilterWithKey(group.Items, NSObject.FromObject("title"), AVMetadata.KeySpaceCommon); if ((item != null) && (item.Length > 0)) { Chapter newChapter = new Chapter(); newChapter.StartTime = item[0].Time.Seconds; if (item[0].StringValue == "Video") { newChapter.Type = ChapterType.Video; } else if (item[0].StringValue == "Advertisement") { newChapter.Type = ChapterType.Advertisement; } else { newChapter.Type = ChapterType.Unknown; } chapters.Add(newChapter); } } return(chapters); }
public virtual AVMetadataItem[] ChapterMetadataGroups(NSLocale forLocale, AVMetadataItem[] commonKeys) { return null; }