private void Play(Grid parent, GalleryItem item, File file) { try { if (!file.Local.IsDownloadingCompleted) { return; } if (_surface != null && _mediaPlayerElement != null) { _surface.Children.Remove(_mediaPlayerElement); _surface = null; } if (_mediaPlayer == null) { _mediaPlayer = new MediaPlayer(); _mediaPlayer.SourceChanged += OnSourceChanged; _mediaPlayer.PlaybackSession.PlaybackStateChanged += OnPlaybackStateChanged; _mediaPlayerElement.SetMediaPlayer(_mediaPlayer); } var dpi = DisplayInformation.GetForCurrentView().LogicalDpi / 96.0f; _mediaPlayer.SetSurfaceSize(new Size(parent.ActualWidth * dpi, parent.ActualHeight * dpi)); _mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("file:///" + file.Local.Path)); _mediaPlayer.IsLoopingEnabled = item.IsLoop; _mediaPlayer.Play(); _surface = parent; _surface.Children.Add(_mediaPlayerElement); } catch { } }
private async void Play(Grid parent, GalleryContent item, File file) { try { if (!file.Local.IsDownloadingCompleted && !SettingsService.Current.IsStreamingEnabled) { return; } if (_surface != null && _mediaPlayerElement != null) { _surface.Children.Remove(_mediaPlayerElement); _surface = null; } if (_mediaPlayer == null) { _mediaPlayer = Task.Run(() => new MediaPlayer()).Result; _mediaPlayer.VolumeChanged += OnVolumeChanged; _mediaPlayer.SourceChanged += OnSourceChanged; _mediaPlayer.MediaOpened += OnMediaOpened; _mediaPlayer.PlaybackSession.PlaybackStateChanged += OnPlaybackStateChanged; _mediaPlayerElement.SetMediaPlayer(_mediaPlayer); } var dpi = DisplayInformation.GetForCurrentView().LogicalDpi / 96.0f; _mediaPlayer.SetSurfaceSize(new Size(parent.ActualWidth * dpi, parent.ActualHeight * dpi)); _surface = parent; _surface.Children.Add(_mediaPlayerElement); if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Controls.MediaTransportControls", "ShowAndHideAutomatically")) { Transport.ShowAndHideAutomatically = true; } Transport.DownloadMaximum = file.Size; Transport.DownloadValue = file.Local.DownloadOffset + file.Local.DownloadedPrefixSize; var streamable = SettingsService.Current.IsStreamingEnabled && item.IsStreamable && !file.Local.IsDownloadingCompleted; if (streamable) { _streamingInterop = new FFmpegInteropMSS(new FFmpegInteropConfig()); var interop = await _streamingInterop.CreateFromFileAsync(ViewModel.ProtoService.Client, file); _mediaPlayer.Source = interop.CreateMediaPlaybackItem(); Transport.DownloadMaximum = file.Size; Transport.DownloadValue = file.Local.DownloadOffset + file.Local.DownloadedPrefixSize; } else { _mediaPlayer.Source = MediaSource.CreateFromUri(new Uri("file:///" + file.Local.Path)); } _mediaPlayer.IsLoopingEnabled = item.IsLoop; _mediaPlayer.Play(); } catch { } }
private void Play(Grid parent, GalleryContent item, File file) { try { if (!file.Local.IsDownloadingCompleted && !SettingsService.Current.IsStreamingEnabled) { return; } if (_surface != null && _mediaPlayerElement != null) { _surface.Children.Remove(_mediaPlayerElement); _surface = null; } if (_mediaPlayer == null) { _mediaPlayer = Task.Run(() => new MediaPlayer()).Result; _mediaPlayer.VolumeChanged += OnVolumeChanged; _mediaPlayer.SourceChanged += OnSourceChanged; _mediaPlayer.MediaOpened += OnMediaOpened; _mediaPlayer.PlaybackSession.PlaybackStateChanged += OnPlaybackStateChanged; _mediaPlayerElement.SetMediaPlayer(_mediaPlayer); } var dpi = DisplayInformation.GetForCurrentView().LogicalDpi / 96.0f; _mediaPlayer.SetSurfaceSize(new Size(parent.ActualWidth * dpi, parent.ActualHeight * dpi)); _surface = parent; _surface.Children.Add(_mediaPlayerElement); if (ApiInfo.IsUniversalApiContract5Present) //if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Controls.MediaTransportControls", "ShowAndHideAutomatically")) { Transport.ShowAndHideAutomatically = true; } Transport.DownloadMaximum = file.Size; Transport.DownloadValue = file.Local.DownloadOffset + file.Local.DownloadedPrefixSize; var streamable = SettingsService.Current.IsStreamingEnabled && item.IsStreamable /*&& !file.Local.IsDownloadingCompleted*/; if (streamable) { _streamingInterop = new RemoteFileStream(item.ProtoService, file, TimeSpan.FromSeconds(item.Duration)); _mediaPlayer.Source = MediaSource.CreateFromStream(_streamingInterop, item.MimeType); Transport.DownloadMaximum = file.Size; Transport.DownloadValue = file.Local.DownloadOffset + file.Local.DownloadedPrefixSize; } else { _mediaPlayer.Source = MediaSource.CreateFromUri(UriEx.GetLocal(file.Local.Path)); } _mediaPlayer.IsLoopingEnabled = item.IsLoop; _mediaPlayer.Play(); } catch { } }
private void Play(Grid parent, GalleryContent item, File file) { if (_unloaded) { return; } try { if (!file.Local.IsDownloadingCompleted && !SettingsService.Current.IsStreamingEnabled) { return; } if (_surface != null && _mediaPlayerElement != null) { _surface.Children.Remove(_mediaPlayerElement); _surface = null; } if (_mediaPlayer == null) { _mediaPlayer = Task.Run(() => new MediaPlayer()).Result; _mediaPlayer.VolumeChanged += OnVolumeChanged; _mediaPlayer.SourceChanged += OnSourceChanged; _mediaPlayer.MediaOpened += OnMediaOpened; _mediaPlayer.PlaybackSession.PlaybackStateChanged += OnPlaybackStateChanged; _mediaPlayerElement.SetMediaPlayer(_mediaPlayer); } var dpi = DisplayInformation.GetForCurrentView().LogicalDpi / 96.0f; _mediaPlayer.SetSurfaceSize(new Size(parent.ActualWidth * dpi, parent.ActualHeight * dpi)); _surface = parent; _surface.Children.Add(_mediaPlayerElement); //Transport.DownloadMaximum = file.Size; //Transport.DownloadValue = file.Local.DownloadOffset + file.Local.DownloadedPrefixSize; var streamable = SettingsService.Current.IsStreamingEnabled && item.IsStreamable /*&& !file.Local.IsDownloadingCompleted*/; if (streamable) { _fileStream = new RemoteFileStream(item.ProtoService, file, item.Duration); _mediaPlayer.Source = MediaSource.CreateFromStream(_fileStream, item.MimeType); //Transport.DownloadMaximum = file.Size; //Transport.DownloadValue = file.Local.DownloadOffset + file.Local.DownloadedPrefixSize; } else { _mediaPlayer.Source = MediaSource.CreateFromUri(UriEx.ToLocal(file.Local.Path)); } _mediaPlayer.IsLoopingEnabled = item.IsLoop; _mediaPlayer.Play(); } catch { } }
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(); }
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(); }
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 } }
/// <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); }
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); }
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); }
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); }
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); } }
void SetMediaTransportControls() { mpElement = new MediaPlayerElement(); mpElement.SetMediaPlayer(Player); mpElement.AreTransportControlsEnabled = true; mpElement.TransportControls = MainPageTransportControls; }
void CreateUI() { mediaPlayerElement = new MediaPlayerElement { AreTransportControlsEnabled = true }; mediaPlayerElement.SetMediaPlayer(_mediaPlayer); Window.Current.Content = mediaPlayerElement; }
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); } }
/// <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)); }
private async Task RemovePlayingSoundAsync() { if (PlayingSound.MediaPlayer != null) { PlayingSound.MediaPlayer.Pause(); MediaPlayerElement.MediaPlayer.MediaEnded -= Player_MediaEnded; ((MediaPlaybackList)PlayingSound.MediaPlayer.Source).CurrentItemChanged -= PlayingSoundTemplate_CurrentItemChanged; MediaPlayerElement.SetMediaPlayer(null); PlayingSoundName.Text = ""; PlayingSound.MediaPlayer.SystemMediaTransportControls.IsEnabled = false; PlayingSound.MediaPlayer = null; } await SoundPage.RemovePlayingSoundAsync(PlayingSound); }
private void OnlineListen_Click(object sender, RoutedEventArgs e) { Uri uri = new Uri(Uri.Text); _mediaSource = MediaSource.CreateFromUri(uri); //简单访问 if (_mediaPlayer == null) { _mediaPlayer = new MediaPlayer(); } _mediaPlayer.Source = _mediaSource; _mediaPlayer.Play(); MediaPlayerElement.SetMediaPlayer(_mediaPlayer); }
private GalleryView() { InitializeComponent(); _layer = ElementCompositionPreview.GetElementVisual(Layer); _layer.Opacity = 0; _mediaPlayerElement = new MediaPlayerElement { Style = Resources["TransportLessMediaPlayerStyle"] as Style }; _mediaPlayerElement.AreTransportControlsEnabled = true; _mediaPlayerElement.TransportControls = Transport; _mediaPlayerElement.SetMediaPlayer(_mediaPlayer); Initialize(); }
private async void ListView_OnItemClickAsync(object sender, ItemClickEventArgs e) { StorageFolder folder = KnownFolders.MusicLibrary; string m = (string)e.ClickedItem; StorageFile a = await folder.GetFileAsync(m); _mediaSource = MediaSource.CreateFromStorageFile(a); //简单访问 if (_mediaPlayer == null) { _mediaPlayer = new MediaPlayer(); } _mediaPlayer.Source = _mediaSource; _mediaPlayer.Play(); MediaPlayerElement.SetMediaPlayer(_mediaPlayer); }
private GalleryView() { InitializeComponent(); #region Localizations FlyoutSaveAs.Text = Strings.Additional.SaveAs; #endregion 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(); 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 InitializePlayingSound() { if (PlayingSound != null) { if (PlayingSound.MediaPlayer != null) { MediaPlayerElement.SetMediaPlayer(PlayingSound.MediaPlayer); MediaPlayerElement.MediaPlayer.MediaEnded -= Player_MediaEnded; MediaPlayerElement.MediaPlayer.MediaEnded += Player_MediaEnded; PlayingSound.MediaPlayer.CommandManager.PreviousReceived += MediaPlayerCommandManager_PreviousReceived; ((MediaPlaybackList)PlayingSound.MediaPlayer.Source).CurrentItemChanged -= PlayingSoundTemplate_CurrentItemChanged; ((MediaPlaybackList)PlayingSound.MediaPlayer.Source).CurrentItemChanged += PlayingSoundTemplate_CurrentItemChanged; PlayingSound.MediaPlayer.CurrentStateChanged += MediaPlayer_CurrentStateChanged; PlayingSoundName.Text = PlayingSound.CurrentSound.Name; AdjustLayout(); } } }
private async void ButtonBase_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) { // Application now has read/write access to the picked file _mediaSource = MediaSource.CreateFromStorageFile(file); //简单访问 if (_mediaPlayer == null) { _mediaPlayer = new MediaPlayer(); } _mediaPlayer.Source = _mediaSource; _mediaPlayer.Play(); MediaPlayerElement.SetMediaPlayer(_mediaPlayer); path.Text = file.FileType; //高级访问 /*var mediaPlaybackItem = new MediaPlaybackItem(_mediaSource); * * _mediaPlayer.Source = mediaPlaybackItem;*/ } else { path.Text = "no file"; } }
private GalleryView() { InitializeComponent(); //CreateKeyboardAccelerator(Windows.System.VirtualKey.C); //CreateKeyboardAccelerator(Windows.System.VirtualKey.S); //CreateKeyboardAccelerator(Windows.System.VirtualKey.Left, Windows.System.VirtualKeyModifiers.None); //CreateKeyboardAccelerator(Windows.System.VirtualKey.GamepadLeftShoulder, Windows.System.VirtualKeyModifiers.None); //CreateKeyboardAccelerator(Windows.System.VirtualKey.Right, Windows.System.VirtualKeyModifiers.None); //CreateKeyboardAccelerator(Windows.System.VirtualKey.GamepadRightShoulder, Windows.System.VirtualKeyModifiers.None); _layer = ElementCompositionPreview.GetElementVisual(Layer); _layer.Opacity = 0; _mediaPlayerElement = new MediaPlayerElement { Style = Resources["TransportLessMediaPlayerStyle"] as Style }; _mediaPlayerElement.AreTransportControlsEnabled = true; _mediaPlayerElement.TransportControls = Transport; _mediaPlayerElement.SetMediaPlayer(_mediaPlayer); Initialize(); }
private async void StartMediaPlayerElement() { HttpClient client = new HttpClient(); // Add custom headers or credentials. client.DefaultRequestHeaders.Add("Foo", "Bar"); // Authenticate with username 'foo' and password 'bar'. client.DefaultRequestHeaders.Add("Authorization", "Basic Zm9vOmJhcg=="); // Try any of the following Uris (audio or video). Uri uri = new Uri("http://heyhttp.org/song.mp3?basic=1&user=foo&password=bar&lastModified=true"); //Uri uri = new Uri("http://video.ch9.ms/ch9/70cc/83e17e76-8be8-441b-b469-87cf0e6a70cc/ASPNETwithScottHunter_high.mp4"); HttpRandomAccessStream stream = await HttpRandomAccessStream.CreateAsync(client, uri); mediaPlayerElement = new MediaPlayerElement(); mediaPlayerElement.AreTransportControlsEnabled = true; mediaPlayerElement.AutoPlay = true; this.Content = mediaPlayerElement; mediaPlayerElement.SetMediaPlayer(new Windows.Media.Playback.MediaPlayer()); mediaPlayerElement.Source = Windows.Media.Core.MediaSource.CreateFromStream(stream, stream.ContentType); }
public SpeakerWithSMTC() { //InitializeComponent(); synthesizer = new SpeechSynthesizer(); mediaPlayerElement = new MediaPlayerElement(); systemMediaTransportControls = SystemMediaTransportControls.GetForCurrentView(); var mediaPlayer = new MediaPlayer(); mediaPlayer.AutoPlay = false; mediaPlayer.CommandManager.IsEnabled = false; mediaPlayer.MediaEnded += media_MediaEnded; mediaPlayerElement.SetMediaPlayer(mediaPlayer); synthesizer.Options.AppendedSilence = SpeechAppendedSilence.Min; systemMediaTransportControls.IsPlayEnabled = true; systemMediaTransportControls.IsNextEnabled = true; systemMediaTransportControls.IsPauseEnabled = true; systemMediaTransportControls.IsPreviousEnabled = true; systemMediaTransportControls.ButtonPressed += SystemMediaTransportControls_ButtonPressed; }
//private Visual _topBarVisual; //private Visual _botBarVisual; private GalleryView() { InitializeComponent(); Layer.Visibility = Visibility.Collapsed; TopBar.Visibility = Visibility.Collapsed; BotBar.Visibility = Visibility.Collapsed; _mediaPlayer = new MediaPlayerElement { Style = Resources["yolo"] as Style }; _mediaPlayer.AreTransportControlsEnabled = true; _mediaPlayer.TransportControls = Transport; _mediaPlayer.SetMediaPlayer(new MediaPlayer()); _mediaPlayer.MediaPlayer.PlaybackSession.PlaybackStateChanged += OnPlaybackStateChanged; _layerVisual = ElementCompositionPreview.GetElementVisual(Layer); //_topBarVisual = ElementCompositionPreview.GetElementVisual(TopBar); //_botBarVisual = ElementCompositionPreview.GetElementVisual(BotBar); //_layerVisual.Opacity = 0; //_topBarVisual.Offset = new Vector3(0, -48, 0); //_botBarVisual.Offset = new Vector3(0, 48, 0); if (ApiInformation.IsMethodPresent("Windows.UI.Xaml.Hosting.ElementCompositionPreview", "SetImplicitShowAnimation")) { var easing = ConnectedAnimationService.GetForCurrentView().DefaultEasingFunction; var duration = ConnectedAnimationService.GetForCurrentView().DefaultDuration; var topShowAnimation = Window.Current.Compositor.CreateVector3KeyFrameAnimation(); topShowAnimation.InsertKeyFrame(0.0f, new Vector3(0, -48, 0), easing); topShowAnimation.InsertKeyFrame(1.0f, new Vector3(), easing); topShowAnimation.Target = nameof(Visual.Offset); topShowAnimation.Duration = duration; var botHideAnimation = Window.Current.Compositor.CreateVector3KeyFrameAnimation(); botHideAnimation.InsertKeyFrame(0.0f, new Vector3(), easing); botHideAnimation.InsertKeyFrame(1.0f, new Vector3(0, 48, 0), easing); botHideAnimation.Target = nameof(Visual.Offset); botHideAnimation.Duration = duration; var topHideAnimation = Window.Current.Compositor.CreateVector3KeyFrameAnimation(); topHideAnimation.InsertKeyFrame(0.0f, new Vector3(), easing); topHideAnimation.InsertKeyFrame(1.0f, new Vector3(0, -48, 0), easing); topHideAnimation.Target = nameof(Visual.Offset); topHideAnimation.Duration = duration; var botShowAnimation = Window.Current.Compositor.CreateVector3KeyFrameAnimation(); botShowAnimation.InsertKeyFrame(0.0f, new Vector3(0, 48, 0), easing); botShowAnimation.InsertKeyFrame(1.0f, new Vector3(), easing); botShowAnimation.Target = nameof(Visual.Offset); botShowAnimation.Duration = duration; 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(TopBar, topShowAnimation); ElementCompositionPreview.SetImplicitHideAnimation(TopBar, topHideAnimation); ElementCompositionPreview.SetImplicitShowAnimation(BotBar, botShowAnimation); ElementCompositionPreview.SetImplicitHideAnimation(BotBar, botHideAnimation); ElementCompositionPreview.SetImplicitShowAnimation(Layer, layerShowAnimation); ElementCompositionPreview.SetImplicitHideAnimation(Layer, layerHideAnimation); } }
public static void Attach(MediaPlayerElement mediaPlayerElement) { mediaPlayerElement.SetMediaPlayer(Player); }
private async void MediaPlayerElement_Loaded(object sender, RoutedEventArgs e) { MediaPlayerElement mediaPlayerElement = sender as MediaPlayerElement; if (mediaPlayerElement != null) { System.Diagnostics.Debug.WriteLine("MPE: " + mediaPlayerElement.Name + " loaded"); MediaItem item = GetItem(); if (item != null) { var player = new MediaPlayer(); if (player != null) { string url = item.mediaUrl; player.MediaEnded += Player_MediaEnded; player.AutoPlay = true; player.IsMuted = false; if (!url.StartsWith("video://")) { var uri = new Uri(url); if (uri != null) { player.Source = Windows.Media.Core.MediaSource.CreateFromUri(uri); } } else { var path = url.Replace("video://", ""); if (path != null) { try { Windows.Storage.StorageFolder folder = Windows.Storage.KnownFolders.VideosLibrary; Windows.Storage.StorageFile file = null; string ext = System.IO.Path.GetExtension(path); string filename = System.IO.Path.GetFileName(path); string directory = System.IO.Path.GetDirectoryName(path); while (!string.IsNullOrEmpty(directory)) { string subdirectory = directory; int pos = -1; if ((pos = directory.IndexOf('\\')) > 0) { subdirectory = directory.Substring(0, pos); } folder = await folder.GetFolderAsync(subdirectory); if (folder != null) { if (pos > 0) { directory = directory.Substring(pos + 1); } else { directory = string.Empty; } } } if (folder != null) { file = await folder.GetFileAsync(filename); if (file != null) { player.Source = Windows.Media.Core.MediaSource.CreateFromStorageFile(file); } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Exception while opening file: " + ex.Message); } } } mediaPlayerElement.SetMediaPlayer(player); } } } }
private async void Compact_Click(object sender, RoutedEventArgs e) { var item = ViewModel.SelectedItem; if (item == null) { return; } _viewService = TLContainer.Current.Resolve <IViewService>(); if (_mediaPlayer == null || _mediaPlayer.Source == null) { Play(item, item.GetFile()); } _mediaPlayerElement.SetMediaPlayer(null); var width = 340d; var height = 200d; var constraint = item.Constraint; if (constraint is MessageAnimation messageAnimation) { constraint = messageAnimation.Animation; } else if (constraint is MessageVideo messageVideo) { constraint = messageVideo.Video; } if (constraint is Animation animation) { width = animation.Width; height = animation.Height; } else if (constraint is Video video) { width = video.Width; height = video.Height; } if (width > 500 || height > 500) { var ratioX = 500d / width; var ratioY = 500d / height; var ratio = Math.Min(ratioX, ratioY); width *= ratio; height *= ratio; } _compactLifetime = await _viewService.OpenAsync(() => { var element = new MediaPlayerElement(); element.RequestedTheme = ElementTheme.Dark; element.SetMediaPlayer(_mediaPlayer); element.TransportControls = new MediaTransportControls { IsCompact = true, IsCompactOverlayButtonVisible = false, IsFastForwardButtonVisible = false, IsFastRewindButtonVisible = false, IsFullWindowButtonVisible = false, IsNextTrackButtonVisible = false, IsPlaybackRateButtonVisible = false, IsPreviousTrackButtonVisible = false, IsRepeatButtonVisible = false, IsSkipBackwardButtonVisible = false, IsSkipForwardButtonVisible = false, IsVolumeButtonVisible = false, IsStopButtonVisible = false, IsZoomButtonVisible = false, }; element.AreTransportControlsEnabled = true; return(element); }, "PIP", width, height); _compactLifetime.WindowWrapper.ApplicationView().Consolidated += (s, args) => { if (_compactLifetime != null) { _compactLifetime.StopViewInUse(); _compactLifetime.WindowWrapper.Window.Close(); _compactLifetime = null; } this.BeginOnUIThread(() => { Dispose(); }); }; OnBackRequestedOverride(this, new HandledEventArgs()); }