/// <summary> /// Add new media to the favorite playlist /// </summary> /// <param name="sender"></param> private void addMediaMethod(object sender) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Audio files (*.mp3 *.wav *.flac *.ogg)|*.mp3; *.wav; *.flac; *.ogg|Video files (*.mp4 *.avi *.flv *.wmv *.mov)|*.mp4; *.avi; *.flv; *.wmv; *.mov|All files (*.*)|*.*"; if (openFileDialog.ShowDialog() == true) { IsRemoveMediaEnabled = true; MediaSingleElement selectedMedia = new MediaSingleElement(); selectedMedia.Title = Path.GetFileNameWithoutExtension(openFileDialog.FileName); selectedMedia.mediaUri = openFileDialog.FileName; var ffProbe = new NReco.VideoInfo.FFProbe(); var videoInfo = ffProbe.GetMediaInfo(openFileDialog.FileName); selectedMedia.MediaDuration = videoInfo.Duration.ToString(@"mm\:ss"); ListOfMedia.Add(selectedMedia); selectedMedia.Extension = Path.GetExtension(openFileDialog.FileName); getIconImage(selectedMedia, selectedMedia.Extension); } }
private void getIconImage(MediaSingleElement tmpmedia, string extension) { if (!tmpmedia.Extension.Equals(".mp3")) { var ffMpeg = new NReco.VideoConverter.FFMpegConverter(); using (MemoryStream sampleStream = new MemoryStream()) { ffMpeg.GetVideoThumbnail(new Uri(tmpmedia.mediaUri).LocalPath, sampleStream, 2); sampleStream.Seek(0, SeekOrigin.Begin); var bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.StreamSource = sampleStream; bitmapImage.EndInit(); tmpmedia.IconImage = bitmapImage; } } else { tmpmedia.IconImage = new BitmapImage(new Uri("pack://application:,,,/XMediaPlayer;component/Icons/mp3.png")); } }