private void AssignValues(FileInfo file, string thumbnailPath) { TimeSpan duration; int audioStreamsCount; int hr = DSWrapper.MediaFile.GetAudioDuration(file, out duration, out audioStreamsCount); if (hr == 0) { this.DurationTicks = duration.Ticks; if (duration.TotalSeconds == 0f) { this.Bitrate = 0; } else { this.Bitrate = (int)(file.Length / duration.TotalSeconds); } this.Genre = DSWrapper.MediaFile.GetAudioGenre(file).Truncate(60); this.Artist = DSWrapper.MediaFile.GetAudioArtist(file).Truncate(60); this.Album = DSWrapper.MediaFile.GetAudioAlbum(file).Truncate(60); if (thumbnailPath != null) { this.HasThumbnail = DSWrapper.MediaFile.GetAudioThumbnail(file, thumbnailPath); } } else if (hr != -2147024864 && !HelperClass.IsFileLocked(file)) { //Chyba -2147024864 znamena ze subor nie je dostupny - napr. pouziva ho iny proces, nie je kompletne skopirovany,... //V pripade inej chyby este overi ci naozaj subor nepouziva iny proces //Inak sa uz nepokusaj zistit metadata this.DurationTicks = 0; } }
private void AssignValues(ItemManager manager, FileInfo file, string thumbnailPath) { TimeSpan duration; string resolution; int audioStreamsCount; List <string> subtitlesStreams; int hr = DSWrapper.MediaFile.GetVideoInfo(file, thumbnailPath, out duration, out resolution, out audioStreamsCount, out subtitlesStreams); if (hr == 0) { this.Resolution = resolution; this.DurationTicks = duration.Ticks; if (duration.TotalSeconds == 0f) { this.Bitrate = 0; } else { this.Bitrate = (int)(file.Length / duration.TotalSeconds); } string name = System.IO.Path.GetFileNameWithoutExtension(file.Name).Truncate(30); if (audioStreamsCount > 1) { for (int i = 1; i <= audioStreamsCount; i++) { new ItemVideo(string.Format("{0} Audio stream {1}", name, i), string.Format("&audio={0}", i), null, this); } } for (int i = 0; i < subtitlesStreams.Count; i++) { new ItemVideo(string.Format("{0} Subtitles {1}", name, subtitlesStreams[i] == null || subtitlesStreams[i] == string.Empty ? (i + 1).ToString() : subtitlesStreams[i]), string.Format("&subtitles={0}", i + 1), null, this); } } else if (hr != -2147024864 && !HelperClass.IsFileLocked(file)) { //Chyba -2147024864 znamena ze subor nie je dostupny - napr. pouziva ho iny proces, nie je kompletne skopirovany,... //V pripade inej chyby este overi ci naozaj subor nepouziva iny proces //Inak sa uz nepokusaj zistit metadata this.DurationTicks = 0; } else { return; } //Zisti ci existuje thumbnail subor ak je cesta k nemu zadana //Nezistuje pokial je hr -2147024864 alebo zamknuty subor if (thumbnailPath != null) { this.HasThumbnail = File.Exists(thumbnailPath); } }