Exemple #1
0
        private void HandleUseInternalMediaTitlesChangedEvent(object sender, EventArgs e)
        {
            foreach (var item in MediaItems)
            {
                var metaData = _metaDataService.GetMetaData(item.FilePath);
                item.Name = GetMediaTitle(item.FilePath, metaData);
            }

            _pendingLoadMediaItems = true;
        }
Exemple #2
0
        private bool PopulateThumbnailAndMetaData(MediaItem mediaItem)
        {
            byte[] thumb = null;

            var metaData = _metaDataService.GetMetaData(mediaItem.FilePath, mediaItem.MediaType.Classification);

            if (metaData == null)
            {
                return(false);
            }

            if (mediaItem.ThumbnailImageSource == null)
            {
                // ReSharper disable once StyleCop.SA1117
                thumb = _thumbnailService.GetThumbnail(
                    mediaItem.FilePath,
                    Unosquare.FFME.MediaElement.FFmpegDirectory,
                    mediaItem.MediaType.Classification,
                    mediaItem.LastChanged,
                    out var _);

                if (thumb == null)
                {
                    return(false);
                }
            }

            DispatcherHelper.CheckBeginInvokeOnUI(() =>
            {
                mediaItem.ThumbnailImageSource = GraphicsUtils.ByteArrayToImage(thumb);
                mediaItem.DurationDeciseconds  = (int)metaData.Duration.TotalMilliseconds / 10;
            });

            return(true);
        }
Exemple #3
0
        private void PopulateDurationAndName(MediaItem mediaItem)
        {
            if (!IsDurationAndNamePopulated(mediaItem))
            {
                var metaData = _metaDataService.GetMetaData(
                    mediaItem.FilePath, mediaItem.MediaType, _ffmpegFolder);

                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    mediaItem.DurationDeciseconds = metaData == null ? 0 : (int)(metaData.Duration.TotalSeconds * 10);
                    mediaItem.Name = GetMediaTitle(mediaItem.FilePath, metaData);
                });
            }
        }
Exemple #4
0
        private void PopulateDurationAndTitle(MediaItem mediaItem)
        {
            if (!IsDurationAndTitlePopulated(mediaItem))
            {
                var metaData = _metaDataService.GetMetaData(
                    mediaItem.FilePath, mediaItem.MediaType, _ffmpegFolder);

                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    if (!IsDurationAndTitlePopulated(mediaItem))
                    {
                        mediaItem.DurationDeciseconds =
                            metaData == null ? 0 : (int)(metaData.Duration.TotalSeconds * 10);
                        mediaItem.Title = GetMediaTitle(mediaItem.FilePath, metaData);
                        mediaItem.FileNameAsSubTitle = _optionsService.UseInternalMediaTitles
                            ? Path.GetFileName(mediaItem.FilePath)
                            : null;
                    }
                });
            }
        }
        private async Task PopulateDurationAndTitleAsync(MediaItem mediaItem)
        {
            if (mediaItem.FilePath != null &&
                mediaItem.MediaType != null &&
                !IsDurationAndTitlePopulated(mediaItem))
            {
                MediaMetaData?metaData = null;

                await Task.Run(() => metaData = _metaDataService.GetMetaData(mediaItem.FilePath, mediaItem.MediaType, _ffmpegFolder), _cancellationToken);

                if (!IsDurationAndTitlePopulated(mediaItem) && !_cancellationToken.IsCancellationRequested)
                {
                    mediaItem.DurationDeciseconds = metaData == null ? 0 : (int)(metaData.Duration.TotalSeconds * 10);
                    mediaItem.Title = GetMediaTitle(mediaItem.FilePath, metaData);
                    mediaItem.FileNameAsSubTitle = _optionsService.UseInternalMediaTitles
                        ? Path.GetFileName(mediaItem.FilePath)
                        : null;
                    mediaItem.VideoRotation = metaData?.VideoRotation ?? 0;
                }
            }
        }