Пример #1
0
 public Artist(string uniqueId, string name, string pictureUrl, IMediaProvider mediaProvider)
 {
     UniqueId      = uniqueId;
     Name          = name;
     PictureUrl    = pictureUrl;
     MediaProvider = mediaProvider;
 }
Пример #2
0
        public MainViewModelTests()
        {
            _predictor = Substitute.For <IPredictor>();
            _predictor
            .PredictAsync(Arg.Any <Stream>())
            .Returns(new PredictionResult
            {
                Success        = true,
                Answer         = "Test result",
                PredictionTime = new DateTime(2000, 1, 1)
            });

            _displayAlertProvider = Substitute.For <IDisplayAlertProvider>();

            _mediaFile = new MediaFile(
                "/files/testfile",
                () => new MemoryStream(),
                () => new MemoryStream());

            _media = Substitute.For <IMedia>();
            _media.Initialize().Returns(Task.FromResult(true));
            _media.IsPickPhotoSupported.Returns(true);
            _media.IsTakePhotoSupported.Returns(true);
            _media.IsCameraAvailable.Returns(true);
            _media.PickPhotoAsync(Arg.Any <PickMediaOptions>()).Returns(Task.FromResult(_mediaFile));
            _media.TakePhotoAsync(Arg.Any <StoreCameraMediaOptions>()).Returns(Task.FromResult(_mediaFile));

            _mediaProvider = Substitute.For <IMediaProvider>();
            _mediaProvider.Media.Returns(_media);
        }
Пример #3
0
        /// <summary>
        /// 이미지 주소를 통해 어떤 서비스의 이미지인지 찾아냄
        /// </summary>
        private static IMediaProvider GetMediaProvider(Uri uri)
        {
            IMediaProvider mediaProvider = null;

            if (uri.ToString().Contains("twitter.com"))
            {
                mediaProvider = new TwitterMp4();
            }
            else if (uri.ToString().Contains("twitpic.com"))
            {
                mediaProvider = new TwitPic();
            }
            else if (uri.ToString().Contains("yfrog.com"))
            {
                mediaProvider = new Yfrog();
            }
            else if (uri.ToString().Contains("tistory.com/image"))
            {
                mediaProvider = new Tistory();
            }
            else if (uri.ToString().Contains("tistory.com/original"))
            {
                mediaProvider = new Tistory();
            }
            else if (uri.ToString().Contains("p.twipple.jp"))
            {
                mediaProvider = new Twipple();
            }
            else if (uri.ToString().Contains("vine.co"))
            {
                mediaProvider = new Vine();
            }

            return(mediaProvider);
        }
Пример #4
0
        public MediaServer(IMediaProvider mediaProvider)
        {
            if (mediaProvider == null)
            {
                throw new ArgumentNullException(nameof(mediaProvider));
            }

            _mediaProvider = mediaProvider;

            if (_mediaProvider.MediaObjectCollection.Any())
            {
                CurrentMedia = _mediaProvider.MediaObjectCollection.FirstOrDefault();
                CurrentMediaUpdated?.Invoke(this, new EventArgs());
            }

            _mediaProvider.MediaCollectionPopulated += (s, o) =>
            {
                CurrentMedia = _mediaProvider.MediaObjectCollection.FirstOrDefault();
                CurrentMediaUpdated?.Invoke(this, new EventArgs());
            };

            _mediaProvider.MediaCollectionChanged += (s, o) =>
            {
                if (!_mediaProvider.MediaObjectCollection.Contains(CurrentMedia))
                {
                    CurrentMedia = _mediaProvider.MediaObjectCollection.FirstOrDefault();
                    CurrentMediaUpdated?.Invoke(this, new EventArgs());
                }
            };
        }
Пример #5
0
 public MediaService(ILoggerFactory loggerFactory, IMediaProvider mediaProvider, IMediaStorageProvider mediaStorageProvider, IMemoryCache cache)
 {
     _log                  = loggerFactory.CreateLogger <MediaService>();
     _mediaProvider        = mediaProvider;
     _mediaStorageProvider = mediaStorageProvider;
     _cache                = cache;
 }
Пример #6
0
 public Track(string id, string title, string coverUrl, TimeSpan duration, IMediaProvider provider)
 {
     Id       = id;
     Provider = provider;
     Title    = title;
     Duration = duration;
     CoverUrl = coverUrl;
 }
Пример #7
0
        public Album(string name, string uniqueId, string coverUrl, IMediaProvider mediaProvider)
        {
            Name          = name;
            UniqueId      = uniqueId;
            CoverUrl      = coverUrl;
            MediaProvider = mediaProvider;

            Tracks = new List <Track> ();
        }
Пример #8
0
        public void MediaProvider_TwippleTest()
        {
            Uri uri = new Uri("http://p.twipple.jp/2d1sn");

            PrivateType pt = new PrivateType(typeof(TweetHelper));

            IMediaProvider mediaProvider = (IMediaProvider)pt.InvokeStatic("GetMediaProvider", new object[] { uri });

            Assert.AreEqual(typeof(Twipple), mediaProvider.GetType());
        }
Пример #9
0
        public void MediaProvider_VineTest()
        {
            Uri uri = new Uri("https://mtc.cdn.vine.co/r/videos_h264high/28D3E01F201216824363924803584_SW_WEBM_1433087743394462be3b271.mp4");

            PrivateType pt = new PrivateType(typeof(TweetHelper));

            IMediaProvider mediaProvider = (IMediaProvider)pt.InvokeStatic("GetMediaProvider", new object[] { uri });

            Assert.AreEqual(typeof(Vine), mediaProvider.GetType());
        }
Пример #10
0
 public OpenGraphService(
     IDocumentTypeAliasProvider documentTypeAliasProvider,
     IActivitiesServiceFactory activitiesServiceFactory,
     INodeModelService nodeModelService,
     IMediaProvider mediaProvider)
 {
     _documentTypeAliasProvider = documentTypeAliasProvider;
     _activitiesServiceFactory  = activitiesServiceFactory;
     _nodeModelService          = nodeModelService;
     _mediaProvider             = mediaProvider;
 }
Пример #11
0
        public static MediaFile Create(string filePath, IMediaProvider provider)
        {
            string extension = provider.GetExtension(filePath);

            if (pictureExtensions.Contains(extension.ToLower()))
            {
                return new Picture(filePath, provider);
            }
            else
            {
                return new OtherMediaFile(filePath, provider);
            }
        }
Пример #12
0
        private void OnMediaChanged(object sender, MediaChangedEventArgs e)
        {
            IMediaProvider mediaProvider = e.NewMedia.GetMediaProvider();

            MediaThumbnail.Source    = new BitmapImage(new Uri(e.NewMedia.ThumbnailUrl));
            MediaTitle.Text          = e.NewMedia.Title;
            MediaAuthor.Text         = e.NewMedia.Author;
            MediaProvider.Text       = mediaProvider.Name;
            MediaProvider.Foreground = new SolidColorBrush((Color)(ColorConverter.ConvertFromString(mediaProvider.NameColorEx) ?? Colors.Gray));
            PlaybackPosition.Minimum = 0;
            PlaybackPosition.Maximum = e.NewMedia.Duration.TotalSeconds;
            PlaybackRemaining.Text   = e.NewMedia.Duration.ToString();
            PlaybackVolume.Value     = NebulaClient.MediaPlayer.Volume;
            PlaybackPlay.Icon        = new SymbolIcon(Symbol.Pause);
            PlaybackPlay.Label       = NebulaClient.GetLocString("Pause");
            UpdateMediaInfoWidth();
        }
Пример #13
0
        public async Task GetMediaAsync()
        {
            IMediaProvider mediaFactory =
                ClientCore.Factory.MediaFactory.Singleton.CreateMediaProvider();

            Media Media = (Media)await mediaFactory.GetMediaAsync();

            AudioMediaDevicesCapturersList = await Media.GetMediaDevicesAsync(MediaKind.AudioInputDevice);

            AudioMediaDevicesRendersList = await Media.GetMediaDevicesAsync(MediaKind.AudioOutputDevice);

            VideoMediaDevicesList = await Media.GetMediaDevicesAsync(MediaKind.VideoDevice);

            AudioCodecsList = await Media.GetCodecsAsync(MediaKind.AudioCodec);

            VideoCodecsList = await Media.GetCodecsAsync(MediaKind.VideoCodec);
        }
Пример #14
0
        /// <summary>
        /// 해당 트윗에 포함된 모든 이미지 / 동영상을 찾아냄
        /// </summary>
        public static void GetMediaUris(CoreTweet.Status twt, ref List <DownloadItem> downloadItems)
        {
            // Twitter Video
            if (twt.ExtendedEntities != null)
            {
                foreach (var eachMedia in twt.ExtendedEntities.Media)
                {
                    if (eachMedia.VideoInfo != null)
                    {
                        foreach (var eachVideoVariant in eachMedia.VideoInfo.Variants)
                        {
                            Uri uri = new Uri(eachVideoVariant.Url);
                            downloadItems.Add(new DownloadItem(twt.Id, twt.User.ScreenName, uri, uri.Segments.Last()));
                        }
                    }
                }
            }

            else if (twt.Entities.Media != null)
            {
                foreach (var url in twt.Entities.Media)
                {
                    Uri uri = new Uri(url.MediaUrl);

                    IMediaProvider mediaProvider = null;

                    if (IsImageFile(uri.ToString()))
                    {
                        Uri newUri = new Uri(ModifyImageUri(uri.ToString()));

                        downloadItems.Add(new DownloadItem(twt.Id, twt.User.ScreenName, newUri, uri.Segments.Last()));
                    }
                    else
                    {
                        mediaProvider = GetMediaProvider(uri);

                        if (mediaProvider != null)
                        {
                            try
                            {
                                List <Uri> mediaUris = mediaProvider.GetUri(uri);

                                foreach (var eachUri in mediaUris)
                                {
                                    string filename = eachUri.Segments.Last();
                                    downloadItems.Add(new DownloadItem(twt.Id, twt.User.ScreenName, eachUri, filename));
                                }
                            }
                            catch
                            {
                                throw;
                            }
                        }
                    }
                }
            }

            if (twt.Entities.Urls != null)
            {
                foreach (var url in twt.Entities.Urls)
                {
                    Uri uri = new Uri(url.ExpandedUrl);

                    IMediaProvider mediaProvider = null;

                    if (IsImageFile(uri.ToString()))
                    {
                        downloadItems.Add(new DownloadItem(twt.Id, twt.User.ScreenName, uri, uri.Segments.Last()));
                    }
                    else
                    {
                        mediaProvider = GetMediaProvider(uri);

                        if (mediaProvider != null)
                        {
                            try
                            {
                                List <Uri> mediaUris = mediaProvider.GetUri(uri);

                                foreach (var eachUri in mediaUris)
                                {
                                    string filename = eachUri.Segments.Last();
                                    downloadItems.Add(new DownloadItem(twt.Id, twt.User.ScreenName, eachUri, filename));
                                }
                            }
                            catch
                            {
                                throw;
                            }
                        }
                    }
                }
            }

            if (twt.ExtendedEntities != null && twt.ExtendedEntities.Media != null)
            {
                foreach (var media in twt.ExtendedEntities.Media)
                {
                    Uri uri = new Uri(media.MediaUrl);

                    if (!IsImageFile(uri.ToString()))
                    {
                        continue;
                    }

                    Uri newUri = new Uri(ModifyImageUri(uri.ToString()));

                    downloadItems.Add(new DownloadItem(twt.Id, twt.User.ScreenName, newUri, uri.Segments.Last()));
                }
            }
        }
Пример #15
0
 public MediaTypeHandler(IMediaProvider mediaProvider, ILoggerFactory loggerFactory)
 {
     _mediaProvider = mediaProvider;
     _log           = loggerFactory.CreateLogger <MediaTypeHandler>();
 }
Пример #16
0
        public MainWindowViewModel(ISettingsProvider settingsProvider, IServeMedia mediaServer, IMediaProvider mediaProvider, ISaveSettings settingsSaver, IIntervalTimer mediaTimer, IIntervalTimer previewTimer, IGetViewPreview viewPreviewProvider)
        {
            if (settingsProvider == null)
            {
                throw new ArgumentNullException(nameof(settingsProvider));
            }
            if (mediaServer == null)
            {
                throw new ArgumentNullException(nameof(mediaServer));
            }
            if (mediaProvider == null)
            {
                throw new ArgumentNullException(nameof(mediaProvider));
            }
            if (settingsSaver == null)
            {
                throw new ArgumentNullException(nameof(settingsSaver));
            }
            if (mediaTimer == null)
            {
                throw new ArgumentNullException(nameof(mediaTimer));
            }
            if (previewTimer == null)
            {
                throw new ArgumentNullException(nameof(previewTimer));
            }
            if (viewPreviewProvider == null)
            {
                throw new ArgumentNullException(nameof(viewPreviewProvider));
            }

            _settingsProvider    = settingsProvider;
            _mediaServer         = mediaServer;
            _mediaProvider       = mediaProvider;
            _settingsSaver       = settingsSaver;
            _mediaTimer          = mediaTimer;
            _previewTimer        = previewTimer;
            _viewPreviewProvider = viewPreviewProvider;

            _settingsProvider.SettingsChanged += (s, o) =>
            {
                var settingName = (o as System.Configuration.SettingChangingEventArgs).SettingName;
                switch (settingName)
                {
                case nameof(_settingsProvider.UseFade):
                    App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(UseFade))));
                    break;
                }
            };

            _mediaProvider.MediaCollectionPopulated += (s, o) =>
                                                       App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(CurrentMedia))));

            _mediaProvider.MediaCollectionChanged += (s, o) =>
                                                     App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(MediaCollection))));

            _mediaServer.CurrentMediaUpdated += (s, o) =>
                                                App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(CurrentMedia))));

            _mediaProvider.ForceUpdate();
            SendPropertyChanged(nameof(_settingsProvider.ShowPreview));

            _previewTimer.Initialize(TimeSpan.FromSeconds(1), () => UpdatePreview());
            _previewTimer.Start();
        }
Пример #17
0
 public OtherMediaFile(string filePath, IMediaProvider provider)
 {
     Initialize(filePath, provider);
 }
Пример #18
0
 public MediaFiles(List<string> mediaFolders, IMediaProvider provider)
 {
     this.provider = provider;
     mediaFiles = provider.GetFiles(mediaFolders);
 }
Пример #19
0
 protected void Initialize(string filePath, IMediaProvider provider)
 {
     this.provider = provider;
     this.filePath = filePath;
     this.attributes = provider.NormalizeAttributes(filePath);
 }
Пример #20
0
 public Picture(string filePath, IMediaProvider provider)
 {
     Initialize(filePath, provider);
 }
Пример #21
0
 public StoriesViewModel(IMediaProvider mediaProvider, IAudioManager audioManager)
 {
     _mediaProvider  = mediaProvider;
     _audioManager   = audioManager;
     PlaySongCommand = new MvxCommand <StorySong>(PlaySoundExecute);
 }