예제 #1
0
        public VMStarWars()
        {
            Listados recuperar = new Listados();

            trilogias   = recuperar.devuelveTrilogia();
            reproductor = new MediaPlayerElement();
        }
        private async void MenuFlyoutItem_OnClickAsync(object sender, RoutedEventArgs e)
        {
            FileOpenPicker openPicker = new FileOpenPicker
            {
                ViewMode = PickerViewMode.Thumbnail,
                SuggestedStartLocation = PickerLocationId.PicturesLibrary
            };

            openPicker.FileTypeFilter.Add(".mp3");
            openPicker.FileTypeFilter.Add(".mp4");

            StorageFile file = await openPicker.PickSingleFileAsync();

            if (file != null)
            {
                _mediaSource = MediaSource.CreateFromStorageFile(file);
                //简单访问
                if (_mediaPlayer == null)
                {
                    _mediaPlayer = new MediaPlayer();
                }

                _mediaPlayer.Source = _mediaSource;
                _mediaPlayer.Play();
                MediaPlayerElement.SetMediaPlayer(_mediaPlayer);
            }
        }
예제 #3
0
        /// <summary>
        /// set the cast source that should render on the ui
        /// </summary>
        /// <param name="castPlayer">the player to render on the ui</param>
        public void SetCastSource(UWPMediaPlayer castPlayer)
        {
            //hide pin display
            lPin.Visible = false;

            //clear old mediaplayer element
            if (mediaPlayerElement != null)
            {
                Controls.Remove(mediaPlayerElement);
                mediaPlayerElement.Dispose();
            }

            //init new media player element
            mediaPlayerElement = new MediaPlayerElement()
            {
                Location  = new Point(0, 0),
                Margin    = new Padding(0),
                Dock      = DockStyle.Fill,
                BackColor = Color.Black,
                Stretch   = Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.Stretch.UniformToFill
            };

            //set player to render to media element
            mediaPlayerElement.SetMediaPlayer(castPlayer);

            //add to window
            Controls.Add(mediaPlayerElement);
        }
예제 #4
0
        public void StopGameTrailerAndBackToTheGameDetails_Test()
        {
            MediaPlayerElement mediaPlayerElement = new MediaPlayerElement();

            _gameTrailerViewModel.StopGameTrailerAndBackToTheGameDetailsCommand.Execute(mediaPlayerElement);
            Assert.IsNull(mediaPlayerElement.MediaPlayer);
        }
예제 #5
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MediaPlayerElement player = new MediaPlayerElement();

            player.Source = MediaSource.CreateFromUri(new Uri("https://psv4.userapi.com/c205316//u300675947/audiomsg/d12/b1e9c83095.ogg"));
            player.MediaPlayer.Play();
        }
예제 #6
0
        public async System.Threading.Tasks.Task AddMedia(ListView listView, MediaPlayerElement mediaPlayerElement)
        {
            var filePicker = new Windows.Storage.Pickers.FileOpenPicker();

            string[] fileTypes = new string[] { ".wmv", ".mp3", ".mp4", ".wma" };
            foreach (string fileType in fileTypes)
            {
                filePicker.FileTypeFilter.Add(fileType);
            }

            filePicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;

            MediaPlaybackList _mediaPlaybackList = new MediaPlaybackList();

            var pickedFiles = await filePicker.PickMultipleFilesAsync();

            foreach (var file in pickedFiles)
            {
                var mediaPlaybackItem = new MediaPlaybackItem(MediaSource.CreateFromStorageFile(file));
                _mediaPlaybackList.Items.Add(mediaPlaybackItem);
                listView.Items.Add(file.DisplayName);
            }
            _mediaPlaybackList.AutoRepeatEnabled = true;
            mediaPlayerElement.Source            = _mediaPlaybackList;
        }
    public async void Open(MediaPlayerElement display)
    {
        try
        {
            FileOpenPicker picker = new FileOpenPicker()
            {
                SuggestedStartLocation = PickerLocationId.PicturesLibrary
            };
            picker.FileTypeFilter.Add(".mp4");
            StorageFile open = await picker.PickSingleFileAsync();

            if (open != null)
            {
                if (_element == null)
                {
                    _element = display;
                }
                _player = new MediaPlayer
                {
                    Source = MediaSource.CreateFromStorageFile(open)
                };
                _player.MediaOpened += Player_MediaOpened;
                _element.SetMediaPlayer(_player);
            }
        }
        finally
        {
            // Ignore Exceptions
        }
    }
예제 #8
0
 void SetMediaTransportControls()
 {
     mpElement = new MediaPlayerElement();
     mpElement.SetMediaPlayer(Player);
     mpElement.AreTransportControlsEnabled = true;
     mpElement.TransportControls           = MainPageTransportControls;
 }
예제 #9
0
        protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Page> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null || Element == null)
            {
                return;
            }
            app  = Application.Current;
            page = new Page();
            var stack = new StackPanel();

            page.Content = stack;
            stack.HorizontalAlignment = HorizontalAlignment.Stretch;
            stack.VerticalAlignment   = VerticalAlignment.Stretch;



            var _mediaPlayer = new MediaPlayer();

            _mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///IntroGladys.mp4"));

            mediaplayer = new MediaPlayerElement();
            mediaplayer.AreTransportControlsEnabled = false;
            mediaplayer.Name = "Player";
            mediaplayer.SetMediaPlayer(_mediaPlayer);
            mediaplayer.HorizontalAlignment = HorizontalAlignment.Stretch;
            mediaplayer.VerticalAlignment   = VerticalAlignment.Center;
            mediaplayer.Stretch             = Stretch.Uniform;
            stack.Children.Add(mediaplayer);

            this.Children.Add(page);
            mediaplayer.MediaPlayer.Play();
        }
예제 #10
0
        private void DoPlayAudioCommand(HistoryModel historyModel)
        {
            MediaPlayerElement player = new MediaPlayerElement();

            player.Source = MediaSource.CreateFromUri(new Uri(historyModel.attachmentsHistories[0].audio_message.link_mp3));
            player.MediaPlayer.Play();
        }
예제 #11
0
        private void mediaElement_Tapped(object sender, TappedRoutedEventArgs e)
        {
            MediaPlayerElement loc = sender as MediaPlayerElement;

            if (loc != null)
            {
                if (bMin == true)
                {
                    Windows.UI.Xaml.Media.Animation.Storyboard lmax = loc.Resources["MyStoryboardMax"] as Windows.UI.Xaml.Media.Animation.Storyboard;
                    if (lmax != null)
                    {
                        foreach (var a in lmax.Children)
                        {
                            Windows.UI.Xaml.Media.Animation.DoubleAnimation da = a as Windows.UI.Xaml.Media.Animation.DoubleAnimation;
                            if (da != null)
                            {
                                double w = Window.Current.Bounds.Width;
                                da.To = w / 320;
                            }
                        }
                        lmax.Begin();
                    }
                }
                else
                {
                    Windows.UI.Xaml.Media.Animation.Storyboard lmin = loc.Resources["MyStoryboardMin"] as Windows.UI.Xaml.Media.Animation.Storyboard;
                    lmin.Begin();
                }
            }
            bMin = !bMin;
        }
        private async void AddSourceToVideoAndDisplay(string devicePath, MediaPlayerElement mediaPlayer, TextBlock errorText)
        {
            if (devicePath != null)
            {
                try
                {
                    // Create a new file in the current folder.
                    string desiredName = Path.GetFileName(devicePath);
                    string newPath     = Path.Combine(localFolder.Path, desiredName);
                    await Client.GetFileFromDevice(devicePath, newPath);

                    StorageFile videoFile = await StorageFile.GetFileFromPathAsync(newPath);

                    mediaPlayer.Source = MediaSource.CreateFromUri(new Uri(newPath));
                    mediaPlayer.MediaPlayer.IsLoopingEnabled = true;
                    mediaPlayer.Visibility     = Visibility.Visible;
                    VideoButtonTray.Visibility = Visibility.Visible;
                    mediaPlayer.MediaPlayer.Play();
                }
                catch (Exception videoException)
                {
                    errorText.Text       = videoException.ToString();
                    errorText.Visibility = Visibility.Visible;
                }
            }
        }
예제 #13
0
 private void SetTimeController(MediaPlayerElement mediaPlayerElement)
 {
     if (mediaPlayerElement.MediaPlayer != null)
     {
         mediaPlayerElement.MediaPlayer.TimelineController = this.timelineController;
     }
 }
예제 #14
0
        private async Task LoadData()
        {
            RingText = "Loading data...";
            RingContentVisibility = true;

            //load video in player
            StorageFile videoFile = await StorageFile.GetFileFromPathAsync(recordModel.PathToVideo);

            MediaPlayerElement player = new MediaPlayerElement();

            player.AreTransportControlsEnabled = true;
            player.Source = MediaSource.CreateFromStorageFile(videoFile);
            VideoPlayer   = player;

            //if db haven't result emotion, then get result from emotion api microsoft cognitive service and save in db
            if (recordModel.ResultEmotion.Count == 0)
            {
                if (string.IsNullOrEmpty(recordModel.OperationLocation))
                {
                    //video should < 100MB
                    var fileProps = await videoFile.GetBasicPropertiesAsync();

                    double sizeFileMb = (double)fileProps.Size / 1024 / 1024;
                    if (sizeFileMb < 100)
                    {
                        await Processing(videoFile);
                    }
                    else
                    {
                        await ErrorMessageDialog("The video file size exceeds 100 MB");

                        GoBackFunc();
                    }
                }
                else
                {
                    operationLocation = recordModel.OperationLocation;
                    VideoAggregateRecognitionResult operationResult = await DetectEmotion(operationLocation);

                    if (operationResult != null)
                    {
                        _videoResult = operationResult;
                        await SaveResultInDb(_videoResult);
                    }
                }
            }

            //crops emotions
            StorageFile emotionsFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Resources/Emoji.png"));

            await GetEmotionImages(emotionsFile);

            //create timer which sync emotion for time
            _emotionSyncTimer          = new DispatcherTimer();
            _emotionSyncTimer.Interval = TimeSpan.FromMilliseconds(500);
            _emotionSyncTimer.Tick    += (e2, s) => { UpdateEmotionForTime(); };
            _emotionSyncTimer.Start();

            RingContentVisibility = false;
        }
예제 #15
0
        public VideoInput(IStorageFile file)
        {
            // Initialize the video mediaPlayer and retrieve the video from file
            UploadVideo = new MediaPlayerElement();
            var mediaSource = MediaSource.CreateFromStorageFile(file);
            var mediaPlayer = new MediaPlayer {
                Source = mediaSource
            };

            UploadVideo.SetMediaPlayer(mediaPlayer);
            // Play the video
            mediaPlayer.Play();
            // Center the video in the user view
            UploadVideo.Margin = new Thickness(
                (OffsetX + ViewWidth / 2) / Zoom,
                (OffsetY + ViewHeight / 2) / Zoom,
                0, 0);

            // Enable touch, pinch, and drag event responses
            AllowTouch(UploadVideo);
            AllowResize(UploadVideo);
            AllowTranslation(UploadVideo);

            // Add the video node to connector's dictionary
            Connector.Scales.Add(UploadVideo, 1);
        }
예제 #16
0
        private GalleryView()
        {
            InitializeComponent();

            _layer  = ElementCompositionPreview.GetElementVisual(Layer);
            _bottom = ElementCompositionPreview.GetElementVisual(BottomPanel);

            _layer.Opacity  = 0;
            _bottom.Opacity = 0;

            _mediaPlayerElement = new MediaPlayerElement {
                Style = Resources["TransportLessMediaPlayerStyle"] as Style
            };
            _mediaPlayerElement.AreTransportControlsEnabled = true;
            _mediaPlayerElement.TransportControls           = Transport;
            _mediaPlayerElement.SetMediaPlayer(_mediaPlayer);

            _inactivityTimer          = new DispatcherTimer();
            _inactivityTimer.Tick    += OnTick;
            _inactivityTimer.Interval = TimeSpan.FromSeconds(2);
            _inactivityTimer.Start();

            Transport.Visibility = Visibility.Collapsed;

            Initialize();
        }
예제 #17
0
        private async Task <FFmpegInteropMSS> CreateMediaSourceAndPlayer(MediaPlayerElement playerElement, FFmpegInteropMSS ffmpegMss, Clip clip)
        {
            if (ffmpegMss != null)
            {
                ffmpegMss.Dispose();
            }

            FFmpegInteropConfig conf = new FFmpegInteropConfig();

            conf.StreamBufferSize = BufferSizeInBytes;

            MediaPlayer player = playerElement.MediaPlayer;

            if (player == null)
            {
                player = CreatePlayer();
            }

            using (var stream = await clip.ClipFile.OpenAsync(Windows.Storage.FileAccessMode.Read))
            {
                ffmpegMss = await FFmpegInteropMSS.CreateFromStreamAsync(stream, conf);
            }

            player.Source = ffmpegMss.CreateMediaPlaybackItem();
            playerElement.SetMediaPlayer(player);

            return(ffmpegMss);
        }
예제 #18
0
        protected override void OnElementChanged(ElementChangedEventArgs <Image> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement == null)
            {
                return;
            }

            _player = new MediaPlayer()
            {
                AutoPlay         = true,
                IsLoopingEnabled = true,
                IsMuted          = true
            };
            _playerElement = new MediaPlayerElement()
            {
                AutoPlay            = true,
                Visibility          = Visibility.Visible,
                HorizontalAlignment = HorizontalAlignment.Stretch,
                VerticalAlignment   = VerticalAlignment.Stretch,
                Stretch             = Stretch.UniformToFill,
                Background          = new SolidColorBrush(Colors.Brown)
            };

            _playerElement.SetMediaPlayer(_player);
            this.Children.Add(_playerElement);
        }
예제 #19
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     _track = e.Parameter as Track;
     FillTrackContent();
     _mediaElement = ((this.Frame.Parent as ScrollViewer).Parent as Grid).Children.ToList().
                     Find(ui => ui.GetType() == typeof(MediaPlayerElement)) as MediaPlayerElement;
 }
 private void OnMediaEnded(object sender, RoutedEventArgs e)
 {
     ProgressUpdateTimer.Stop();
     UpdateTrackTimeDisplay();
     CurrentPositionMiliseconds = 0;
     MediaProgressBar.Value     = 0;
     MediaPlayerElement.Stop();
 }
예제 #21
0
 public BookmarkCard(string name, TimeSpan time, MediaPlayerElement player)
 {
     this.InitializeComponent();
     this.Bookmark.Text = name;
     this.time          = time;
     this.player        = player;
     this.Tapped       += this.UseBookmark;
 }
예제 #22
0
        private void RenderUI()
        {
            // get the layout base (a border here)
            _border = (Border)this.GetTemplateChild("LayoutRoot");

            // if we can't get the layout root, we can't do anything
            if (null == _border)
            {
                return;
            }

            // if the player exists, we don't need to do anything
            if (null != _mediaPlayerElement)
            {
                return;
            }

            IMediaPlaybackSource Source;

            if (null != this.MediaSourceStorageFile)
            {
                Source = MediaSource.CreateFromStorageFile(this.MediaSourceStorageFile);
            }
            else
            {
                Source = MediaSource.CreateFromUri(this.MediaSourceUri);
            }

            // create the player
            _mediaPlayerElement = new MediaPlayerElement()
            {
                Name     = "MediaPlayer",
                Source   = Source,
                AutoPlay = this.AutoPlay,
                AreTransportControlsEnabled = false,
                Width  = VideoWidth,
                Height = VideoHeight
            };
            _mediaPlayerElement.MediaPlayer.IsMuted = true;

            _mediaPlayerElement.MediaPlayer.IsLoopingEnabled = true;
            if (this.PlaybackPosition > 0)
            {
                _mediaPlayerElement.MediaPlayer.PlaybackSession.Position = TimeSpan.FromMilliseconds(this.PlaybackPosition);
            }
            _mediaPlayerElement.MediaPlayer.PlaybackSession.PlaybackRate = this.PlaybackRate;


            // set media player event handlers
            _mediaPlayerElement.MediaPlayer.MediaOpened += this.MediaPlayer_MediaOpened;
            _mediaPlayerElement.MediaPlayer.MediaFailed += this.MediaPlayer_MediaFailed;
            _mediaPlayerElement.MediaPlayer.MediaEnded  += this.MediaPlayer_MediaEnded;

            Grid.SetRow(_mediaPlayerElement, 0);
            Grid.SetColumn(_mediaPlayerElement, 0);
            _border.Child = _mediaPlayerElement;
        }
예제 #23
0
 void CreateUI()
 {
     mediaPlayerElement = new MediaPlayerElement
     {
         AreTransportControlsEnabled = true
     };
     mediaPlayerElement.SetMediaPlayer(_mediaPlayer);
     Window.Current.Content = mediaPlayerElement;
 }
예제 #24
0
        private GalleryView()
        {
            InitializeComponent();

            #region Localizations

            FlyoutSaveAs.Text = Strings.Additional.SaveAs;

            #endregion

            if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.UIElement", "KeyboardAccelerators"))
            {
                FlyoutCopy.KeyboardAccelerators.Add(new KeyboardAccelerator {
                    Modifiers = Windows.System.VirtualKeyModifiers.Control, Key = Windows.System.VirtualKey.C, ScopeOwner = this
                });
                FlyoutSaveAs.KeyboardAccelerators.Add(new KeyboardAccelerator {
                    Modifiers = Windows.System.VirtualKeyModifiers.Control, Key = Windows.System.VirtualKey.S, ScopeOwner = this
                });
            }

            Layer.Visibility = Visibility.Collapsed;

            _layer = ElementCompositionPreview.GetElementVisual(Layer);

            _mediaPlayerElement = new MediaPlayerElement {
                Style = Resources["TransportLessMediaPlayerStyle"] as Style
            };
            _mediaPlayerElement.AreTransportControlsEnabled = true;
            _mediaPlayerElement.TransportControls           = Transport;
            _mediaPlayerElement.SetMediaPlayer(_mediaPlayer);

            Initialize();

            Transport.Focus(FocusState.Programmatic);

            if (ApiInformation.IsMethodPresent("Windows.UI.Xaml.Hosting.ElementCompositionPreview", "SetImplicitShowAnimation"))
            {
                var easing   = ConnectedAnimationService.GetForCurrentView().DefaultEasingFunction;
                var duration = ConnectedAnimationService.GetForCurrentView().DefaultDuration;

                var layerShowAnimation = Window.Current.Compositor.CreateScalarKeyFrameAnimation();
                layerShowAnimation.InsertKeyFrame(0.0f, 0.0f, easing);
                layerShowAnimation.InsertKeyFrame(1.0f, 1.0f, easing);
                layerShowAnimation.Target   = nameof(Visual.Opacity);
                layerShowAnimation.Duration = duration;

                var layerHideAnimation = Window.Current.Compositor.CreateScalarKeyFrameAnimation();
                layerHideAnimation.InsertKeyFrame(0.0f, 1.0f, easing);
                layerHideAnimation.InsertKeyFrame(1.0f, 0.0f, easing);
                layerHideAnimation.Target   = nameof(Visual.Opacity);
                layerHideAnimation.Duration = duration;

                ElementCompositionPreview.SetImplicitShowAnimation(Layer, layerShowAnimation);
                ElementCompositionPreview.SetImplicitHideAnimation(Layer, layerHideAnimation);
            }
        }
 private void LoadSource()
 {
     using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
     {
         using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(MediaSource, FileMode.Open, FileAccess.Read))
         {
             MediaPlayerElement.SetSource(fileStream);
         }
     }
 }
예제 #26
0
        private void UserControl_Unloaded(object sender, RoutedEventArgs e)
        {
            if (Content is ScaledContentControl scc && scc.Content is MediaPlayerElement element)
            {
                element.Source = null;
                Window.Current.VisibilityChanged -= OnWindowVisibilityChanged;
            }

            _mediaPlayer = null;
        }
예제 #27
0
        /// <summary>
        /// 播放声音或视频
        /// </summary>
        /// <param name="p_file">待播放文件</param>
        async void Play(string p_file)
        {
            if (_playerHost == this)
            {
                if (FileType == FileItemType.Video)
                {
                    var player = _mediaPlayer.MediaPlayer;
                    if (player.PlaybackSession.PlaybackState == Windows.Media.Playback.MediaPlaybackState.Playing)
                    {
                        _mediaPlayer.AreTransportControlsEnabled = true;
                        player.Pause();
                    }
                    else if (player.PlaybackSession.PlaybackState == Windows.Media.Playback.MediaPlaybackState.Paused)
                    {
                        _mediaPlayer.AreTransportControlsEnabled = false;
                        player.Play();
                    }
                }
                return;
            }

            if (_mediaPlayer == null)
            {
                // 初始化播放器
                _mediaPlayer          = new MediaPlayerElement();
                _mediaPlayer.AutoPlay = true;

                var player = _mediaPlayer.MediaPlayer;
                if (player == null)
                {
                    player = new Windows.Media.Playback.MediaPlayer();
                    _mediaPlayer.SetMediaPlayer(player);
                }
                player.MediaEnded  += (sender, e) => StopPlayer();
                player.MediaFailed += (sender, e) => StopPlayer();

                // 自定义播放器内容
                //_mediaPlayer.AreTransportControlsEnabled = true;
                //var con = _mediaPlayer.TransportControls;
                //con.IsCompact = true;
                //con.IsVolumeButtonVisible = false;
                //con.IsVolumeEnabled = false;
                //con.IsZoomButtonVisible = false;
                //con.IsZoomEnabled = false;
            }
            else
            {
                await StopPlayer();
            }

            _mediaPlayer.AreTransportControlsEnabled = (FileType == FileItemType.Sound);
            LoadPlayer();
            _mediaPlayer.Source = MediaSource.CreateFromUri(new Uri(p_file));
        }
예제 #28
0
 private void switchFocusedMediaPlayers()
 {
     if (focussedMediaPLayerElement == MediaPlayer1)
     {
         focussedMediaPLayerElement = MediaPlayer2;
     }
     else
     {
         focussedMediaPLayerElement = MediaPlayer1;
     }
 }
예제 #29
0
        private void RefreshPlayerView()
        {
            if (!IsPlaying)
            {
                return;
            }
            var player = GetTemplateChild("Player") as Panel;

            if (player == null || Source == null)
            {
                return;
            }
            Uri src;

            if (Source.GetType() == typeof(string))
            {
                var source = (string)Source;
                if (string.IsNullOrWhiteSpace(source))
                {
                    return;
                }
                if (source.StartsWith("//"))
                {
                    source = "https:" + source;
                }
                src = new Uri(source);
            }
            else
            {
                src = (Uri)Source;
            }
            if (src == null)
            {
                return;
            }
            player.Children.Clear();
            if (playerType(src))
            {
                var webview = new WebView
                {
                    Source = src
                };
                player.Children.Add(webview);
                return;
            }
            var video = new MediaPlayerElement
            {
                Source   = MediaSource.CreateFromUri(src),
                AutoPlay = true,
                AreTransportControlsEnabled = true
            };

            player.Children.Add(video);
        }
 private void OnPlayPauseButtonClicked(object sender, ManipulationCompletedEventArgs args)
 {
     if (MediaPlayerElement.CurrentState == MediaElementState.Playing)
     {
         MediaPlayerElement.Pause();
     }
     else
     {
         MediaPlayerElement.Play();
     }
 }
        public MPEUserControl()
        {
            this.InitializeComponent();

            MPE = new MediaPlayerElement();
            MPE.AreTransportControlsEnabled = true;
            MPE.AutoPlay = true;

            MPE.HorizontalAlignment = HorizontalAlignment.Stretch;
            MPE.VerticalAlignment = VerticalAlignment.Stretch;
            MPE.MediaPlayer.IsLoopingEnabled = true;
            RootGrid.Children.Add(MPE);
            MPE.SetValue(Grid.RowProperty, 1);
        }