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);
        }
Exemple #5
0
 public virtual AVMetadataItem[] ChapterMetadataGroups(NSLocale forLocale, AVMetadataItem[] commonKeys)
 {
     return null;
 }