private async void MediaPlayer_MediaOpened(Windows.Media.Playback.MediaPlayer sender, object args) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { MusicSlider.Maximum = Mp3Player.MediaPlayer.PlaybackSession.NaturalDuration.TotalSeconds; }); }
private void MediaPlayer_VolumeChanged(Windows.Media.Playback.MediaPlayer sender, object args) { if (MusicService.MediaPlayer.IsMuted != true) { ChangeVolumeGlyph(); } }
/// <summary> /// called when a new cast session starts, and the media source was created and is ready. /// note that this is called before playback is started. /// </summary> /// <param name="transmitterName">display name of the transmitter</param> /// <param name="castPlayer">player that plays the cast stream</param> void OnCastStart(string transmitterName, UWPMediaPlayer castPlayer) { //show info Log("cast playback started"); ShowToast(S.AppName, S.CastWelcome.ReplaceMap(new Dictionary <string, string> { { "{displayname}", miracastReceiver.DisplayName }, { "{transmitter}", transmitterName } }, true)); //init and show cast ui if (castUI == null) { castUI = new ImmersiveCastUI(S.AppName); } castUI.MoveToScreen(App.Config.CastDisplayId); castUI.SetCastSource(castPlayer); castUI.KeyPreview = true; castUI.PreviewKeyDown += (s, e) => { //end session with ESC if (e.KeyCode.Equals(Keys.Escape)) { miracastReceiver.EndCastSession(); } }; castUI.ShowImmersive(); }
protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: dispose managed state (managed objects). } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. #if __IOS__ m_audioTrack?.Stop(); m_audioTrack?.Dispose(); m_memory?.Dispose(); m_memory = null; #elif __ANDROID__ m_audioTrack?.Stop(); m_audioTrack?.Flush(); m_audioTrack?.Release(); m_audioTrack?.Dispose(); #elif NETFX_CORE m_audioTrack?.Pause(); m_memory?.Flush(); m_memory?.Dispose(); m_memory = null; #endif m_audioTrack = null; disposedValue = true; } }
public MainPage() { this.InitializeComponent(); currentCD = new CDMetadata(); if (ListDevices.Items != null) { ListDevices.Items.Clear(); } ListDeviceInformation = new List <CDReaderDevice>(); ListDevices.SelectionChanged += ListDevices_SelectionChanged; ButtonEjectMedia.IsEnabled = false; ButtonReadTable.IsEnabled = false; ButtonPlayTrack.IsEnabled = false; ButtonExtractTrack.IsEnabled = false; ButtonPlayWavFile.IsEnabled = false; ButtonStopPlayer.IsEnabled = false; ButtonStartDiscover.Visibility = Visibility.Visible; ButtonStopDiscover.Visibility = Visibility.Collapsed; ListDevices.IsEnabled = false; CheckListDevices(); FillComboTrack(); bAutoStart = false; // Bind player to element mediaPlayer = new Windows.Media.Playback.MediaPlayer(); mediaPlayerElement.SetMediaPlayer(mediaPlayer); mediaPlayer.MediaEnded += MediaPlayer_MediaEnded; mediaPlayer.MediaFailed += MediaPlayer_MediaFailed; mediaPlayer.MediaOpened += MediaPlayer_MediaOpened; mediaPlayer.PlaybackSession.PlaybackStateChanged += PlaybackSession_PlaybackStateChanged; }
/// <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); }
public MainPage() { this.InitializeComponent(); _mediaPlayer = new Windows.Media.Playback.MediaPlayer(); _mediaPlayer.Source = Windows.Media.Core.MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/Kevin_MacLeod_-_Nu_Flute.mp3")); // TODO: need to reduce volume on startup _mediaPlayer.Play(); }
public AudioPlayer() { Player = new Windows.Media.Playback.MediaPlayer { Volume = 1, AudioCategory = Windows.Media.Playback.MediaPlayerAudioCategory.Media, }; Player.MediaEnded += Player_MediaEnded; Player.MediaFailed += Player_MediaFailed; }
private async void Current_MediaEnded(Windows.Media.Playback.MediaPlayer sender, object args) { await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Low, async() => { Windows.Media.Playback.BackgroundMediaPlayer.Current.MediaEnded -= Current_MediaEnded; BitmapImage img = new BitmapImage(new Uri("ms-appx:///Assets/Voice/voice-on.png")); this.Completed = false; iconVoiceStatus.Source = img; InitializeSpeechRecognizer(); }); }
/// <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 void MainPage_Loaded(object sender, RoutedEventArgs e) { var collectionnames = await this.MongoDatabase.ListCollectionNames().ToListAsync(); VideoCollectionNames = collectionnames.Where(c => c.StartsWith("video")).ToArray(); var mediaPlayer = new Windows.Media.Playback.MediaPlayer(); mediaPlayer.TimelineController = new Windows.Media.MediaTimelineController(); _mediaPlayerElement.SetMediaPlayer(mediaPlayer); //await LoadVideo(); }
private async void MediaPlayer_MediaFailed(Windows.Media.Playback.MediaPlayer sender, Windows.Media.Playback.MediaPlayerFailedEventArgs args) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { ContentDialog dialog = new ContentDialog { Title = "错误", Content = "无法缓冲该MV\r\r原因如下:\r\r" + args.ErrorMessage, Background = Application.Current.Resources["DialogAcrylicBrush"] as Brush }; await dialog.ShowAsync(); }); }
public static void CleanUpMediaPlayerSource(Windows.Media.Playback.MediaPlayer mp) { if (mp?.Source != null) { var source = mp.Source as Windows.Media.Core.MediaSource; source?.Dispose(); var item = mp.Source as Windows.Media.Playback.MediaPlaybackItem; item?.Source?.Dispose(); mp.Source = null; } }
private void MediaPlayer_IsMutedChanged(Windows.Media.Playback.MediaPlayer sender, object args) { switch (MusicService.MediaPlayer.IsMuted) { case true: VolumeGlyph = "\uE198"; break; case false: ChangeVolumeGlyph(); break; } }
public void Dispose() { var player = Player; Player = null; if (player == null) { return; } player.MediaEnded -= Player_MediaEnded; player.MediaFailed -= Player_MediaFailed; try { player.Pause(); } catch { } player.Dispose(); }
private async void SoundEffect() { this.mediaPlayerAudio.SetMediaPlayer(_mediaPlayer); this.mediaPlayerAudio.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Danzon_De_Pasion_Sting.mp3")); this._mediaPlayer = mediaPlayerAudio.MediaPlayer; this._mediaPlayer.Volume = 1f; await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { this._mediaPlayer.Play(); }); }
private void Slider_PointerReleased(object sender, PointerRoutedEventArgs e) { if (PlaybackEngine.PlaybackEngine.Current.IsPlaying == null || PlaybackEngine.PlaybackEngine.Current.IsPlaying == false) { var player = new Windows.Media.Playback.MediaPlayer { Source = Windows.Media.Core.MediaSource.CreateFromUri(new Uri("ms-winsoundevent:Notification.Reminder")) }; player.Volume = Settings.Current.PlayerVolume / 100d; player.MediaEnded += (a, v) => { player.Dispose(); }; player.Play(); } }
/// <summary> /// end the current cast session, and call CastEnd event /// </summary> /// <param name="sendEvent">should CastEnd be called?</param> void EndCurrentSession(bool sendEvent) { currentPlayer?.Pause(); currentPlayer?.Dispose(); currentPlayer = null; CurrentConnection?.Disconnect(MiracastReceiverDisconnectReason.Finished); CurrentConnection = null; currentSession?.Dispose(); currentSession = null; if (sendEvent) { CastEnd?.Invoke(); } }
private async void MediaPlayer_VolumeChangedAsync(Windows.Media.Playback.MediaPlayer sender, object args) { try { UserSettings.localSettings.Values["Volume"] = sender.Volume.ToString(); } catch (Exception e) { await new ContentDialog { Title = "Error Occored", Content = e.Message, CloseButtonText = "Closed", DefaultButton = ContentDialogButton.Close }.ShowAsync(); } }
public static void CleanUpMediaPlayerSource(Windows.Media.Playback.MediaPlayer mp) { if (mp?.Source != null) { var source = mp.Source as Windows.Media.Core.MediaSource; source?.Dispose(); var item = mp.Source as Windows.Media.Playback.MediaPlaybackItem; item?.Source?.Dispose(); //var itemList = mp.Source as Windows.Media.Playback.MediaPlaybackList; //foreach (var playbackItem in itemList.Items) //{ // playbackItem?.Source?.Dispose(); //} } }
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used such as when the application is launched to open a specific file. /// </summary> /// <param name="e">Details about the launch request and process.</param> protected override void OnLaunched(LaunchActivatedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; // Do not repeat app initialization when the Window already has content, // just ensure that the window is active if (rootFrame == null) { // Create a Frame to act as the navigation context and navigate to the first page rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; // - - - - - - MediaPlayer.Current.Init(); Windows.Media.Playback.MediaPlayer Player = (Windows.Media.Playback.MediaPlayer)MediaPlayer.Current.Player; Player.Volume = 1; // - - - - - - Xamarin.Forms.Forms.Init(e); if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: Load state from previously suspended application } // Place the frame in the current Window Window.Current.Content = rootFrame; } if (rootFrame.Content == null) { // When the navigation stack isn't restored navigate to the first page, // configuring the new page by passing required information as a navigation // parameter rootFrame.Navigate(typeof(MainPage), e.Arguments); } // Ensure the current window is active Window.Current.Activate(); }
/// <summary> /// a media source was created for the current session (start rendering to ui) /// </summary> void OnSessionMediaSourceCreated(MiracastReceiverSession sender, MiracastReceiverMediaSourceCreatedEventArgs args) { //set flag currentConnectionTimeoutCancellation?.Cancel(); //init mediaplayer currentPlayer = new UWPMediaPlayer() { Source = args.MediaSource, IsVideoFrameServerEnabled = false, AutoPlay = true, RealTimePlayback = true }; //call event CastStart?.Invoke(CurrentConnection.Transmitter.Name, currentPlayer); //start playback Log($"starting playback of {CurrentConnection.Transmitter.Name} ({CurrentConnection.Transmitter.MacAddress})"); currentPlayer.Play(); }
private void MediaPlayer_CurrentStateChanged(Windows.Media.Playback.MediaPlayer sender, object args) { var t = PlayButton.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { switch (sender.PlaybackSession.PlaybackState) { case Windows.Media.Playback.MediaPlaybackState.Playing: PlayPauseIcon.Symbol = Symbol.Pause; PlayButton.IsEnabled = true; break; case Windows.Media.Playback.MediaPlaybackState.Paused: PlayPauseIcon.Symbol = Symbol.Play; PlayButton.IsEnabled = true; break; default: PlayButton.IsEnabled = true; break; } }); }
public async void Stop() { if (m_PlayThread != Unit.CompletedTask) { try { cancellation.Cancel(); await m_PlayThread; } catch (Exception) { } } if (m_audioTrack != null) { #if !WINDOWS_UWP m_audioTrack.Stop(); m_audioTrack.Dispose(); #else m_audioTrack.Pause(); #endif m_audioTrack = null; } }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected async override void OnNavigatedTo(NavigationEventArgs e) { // TODO: Prepare page for display here. // TODO: If your application contains multiple pages, ensure that you are // handling the hardware Back button by registering for the // Windows.Phone.UI.Input.HardwareButtons.BackPressed event. // If you are using the NavigationHelper provided by some templates, // this event is handled for you. LogMessage("MainPage OnNavigatedTo"); await ReadSettings(); // Bind player to element mediaPlayer = new Windows.Media.Playback.MediaPlayer(); mediaPlayerElement.SetMediaPlayer(mediaPlayer); if (e.NavigationMode != NavigationMode.New) RestoreState(); // Register Suspend/Resume Application.Current.Suspending += Current_Suspending; Application.Current.Resuming += Current_Resuming; // Register Smooth Streaming component RegisterSmoothStreaming(); // Register PlayReady component RegisterPlayReady(); // Register Device Watcher RegisterDeviceWatcher(); // Register UI components and events await RegisterUI(); // Load Data if(string.IsNullOrEmpty(MediaDataSource.MediaDataPath)) { LogMessage("MainPage Loading Data..."); await LoadingData(string.Empty); } // Update control and play first video UpdateControls(); // Start to play the first asset if (bAutoSkip) PlayCurrentUrl(); // Display OS, Device information LogMessage(Information.SystemInformation.GetString()); }
/// <summary> /// Initializes a new instance of the <see cref="MediaPlayer"/> class, a /// Wpf-enabled wrapper for <see cref="Windows.Media.Playback.MediaPlayer"/> /// </summary> public MediaPlayer(Windows.Media.Playback.MediaPlayer instance) { this.UwpInstance = instance; }
void Player_MediaFailed(Windows.Media.Playback.MediaPlayer sender, Windows.Media.Playback.MediaPlayerFailedEventArgs args) { Ended.TrySetException(new Exception("Failed to play audio > " + args.ErrorMessage)); }
private void MediaPlayer_MediaFailed(Windows.Media.Playback.MediaPlayer sender, Windows.Media.Playback.MediaPlayerFailedEventArgs args) { LogMessage("MediaPlayer media failed event"); }
private void MediaPlayer_MediaEnded(Windows.Media.Playback.MediaPlayer sender, object args) { LogMessage("MediaPlayer media ended event"); }
public void Play() { m_PlayThread = Unit.InvokeAsync( () => { try { int iToneStep = 0; m_audioTrack = #if __ANDROID__ new Android.Media.AudioTrack ( Android.Media.Stream.Music, SampleRate, Android.Media.ChannelOut.Mono, Android.Media.Encoding.Pcm16bit, 2 * SampleRate, Android.Media.AudioTrackMode.Stream ) #elif __IOS__ AVFoundation.AVAudioPlayer.FromData(m_memory) #elif WINDOWS_UWP new Windows.Media.Playback.MediaPlayer { Source = Windows.Media.Core.MediaSource.CreateFromStream( System.IO.WindowsRuntimeStreamExtensions.AsRandomAccessStream(m_memory), "audio/wav") } #endif ; #if __ANDROID__ m_audioTrack.SetVolume((float)m_volume); #elif __IOS__ m_audioTrack.Volume = (float)m_volume; #elif WINDOWS_UWP m_audioTrack.Volume = m_volume; #endif while (!cancellation.IsCancellationRequested && m_play_length-- > 0) { GenTone(iToneStep++); #if __ANDROID__ m_audioTrack.Write(generatedSnd, 0, generatedSnd.Length); #elif __IOS__ m_memory.AppendBytes(generatedSnd); #elif WINDOWS_UWP m_memory.Write(generatedSnd, 0, generatedSnd.Length); #endif if (iToneStep == 1) { m_audioTrack.Play(); } } } catch (OutOfMemoryException e) { Log(e, LogImportance.E); } catch (Exception e) { Log(e, LogImportance.W); } }, cancellation.Token ); }
internal MediaPlaybackSession(Windows.Media.Playback.MediaPlayer mediaPlayer) { MediaPlayer = mediaPlayer; }