Пример #1
0
        public static Hashtable getInfo(string file, string entityId)
        {
            Hashtable results = new Hashtable();
            MediaInfo MI      = new MediaInfo();

            MI.Open(file);
            #region Released
            string value = MI.Get(StreamKind.General, 0, Infos.Encoded_Date.ToString());
            if (string.IsNullOrWhiteSpace(value) == false)
            {
                value = value.Replace("UTC", "");
                DateTime released;
                if (DateTime.TryParse(value, out released) == true)
                {
                    results.Add("Released", released);
                }
            }
            #endregion
            #region Runtime
            value = MI.Get(StreamKind.General, 0, Infos.Duration.ToString());
            if (string.IsNullOrWhiteSpace(value) == false)
            {
                double ms;
                if (double.TryParse(value, out ms) == true)
                {
                    results.Add("Runtime", (int?)TimeSpan.FromMilliseconds(ms).TotalMinutes);
                }
            }
            #endregion
            #region Format
            string format = MI.Get(StreamKind.General, 0, Infos.Format.ToString());
            string height = MI.Get(StreamKind.Video, 0, Infos.Height.ToString());
            string width  = MI.Get(StreamKind.Video, 0, Infos.Width.ToString());

            results.Add("Format", MovieServices.GetFormat(format, height, width));
            #endregion
            #region AspectRatio
            value = MI.Get(StreamKind.Video, 0, "DisplayAspectRatio/String");
            if (string.IsNullOrWhiteSpace(value) == false)
            {
                results.Add(Infos.DisplayAspectRatio.ToString(), MovieServices.GetAspectRatio(value));
            }
            #endregion
            #region Audios

            List <Audio> audios = new List <Audio>();
            for (int i = 0; i < MI.Count_Get(StreamKind.Audio); i++)
            {
                string langue = MI.Get(StreamKind.Audio, i, @"Language/String");
                value = MI.Get(StreamKind.Audio, i, Infos.Format.ToString());
                audios.Add(MovieServices.GetMovieAudio(value, langue));
            }

            if (audios.Count > 0)
            {
                results.Add("Audios", audios);
            }

            #endregion
            #region Subs

            List <string> subs = new List <string>();
            for (int i = 0; i < MI.Count_Get(StreamKind.Text); i++)
            {
                subs.Add(MI.Get(StreamKind.Text, i, @"Language/String"));
            }

            if (subs.Count > 0)
            {
                results.Add("Subs", subs);
            }

            #endregion

            MI.Close();
            return(results);
        }