private void HandleTaskInstanceCanceled(IBackgroundTaskInstance taskInstance, BackgroundTaskCancellationReason reason) { PlayQueueManager.Current.Disconnect(); TileUpdateManager.CreateTileUpdaterForApplication("App").Clear(); Logger.Current.Log(new CallerInfo(), LogLevel.Info, "AudioPlayer Background Task Completed id:{0} reason:{1}", taskInstance.Task.TaskId, reason.ToString()); ApplicationSettings.PutSettingsValue(ApplicationSettings.IS_BACKGROUND_PROCESS_ACTIVE, false); if (ApplicationSettings.GetSettingsValue <bool>(ApplicationSettings.IS_FOREGROUND_PROCESS_ACTIVE, false)) { PlayQueueManager.Current.SendMessageToForeground(PlayQueueConstantBGMessageId.BackgroundEnded); } backgroundTaskState = BackgroundTaskState.Stopped; PlayQueueManager.Current.TrackChanged -= HandlePlayQueueTrackChanged; BackgroundMediaPlayer.Current.CurrentStateChanged -= HandleBackgroundMediaPlayerCurrentStateChanged; taskInstance.Task.Completed -= HandleTaskInstanceTaskCompleted; taskInstance.Canceled -= HandleTaskInstanceCanceled; BackgroundMediaPlayer.Shutdown(); Logger.Current.Flush(); backgroundTaskDefferal.Complete(); }
public void Run(IBackgroundTaskInstance taskInstance) { Logger.Current.Init(LogType.AudioFunction); PlayQueueManager.Current.Connect(); systemMediaTransportControls = SystemMediaTransportControls.GetForCurrentView(); systemMediaTransportControls.ButtonPressed += HandleSystemMediaTransportControlsButtonPressed; systemMediaTransportControls.PropertyChanged += HandleSystemMediaTransportControlsPropertyChanged; systemMediaTransportControls.IsEnabled = true; systemMediaTransportControls.IsPauseEnabled = true; systemMediaTransportControls.IsPlayEnabled = true; systemMediaTransportControls.IsNextEnabled = true; systemMediaTransportControls.IsPreviousEnabled = true; taskInstance.Canceled += HandleTaskInstanceCanceled; taskInstance.Task.Completed += HandleTaskInstanceTaskCompleted; taskInstance.Task.Progress += Task_Progress; BackgroundMediaPlayer.Current.CurrentStateChanged += HandleBackgroundMediaPlayerCurrentStateChanged; BackgroundMediaPlayer.Current.SeekCompleted += HandleBackgroundMediaPlayerSeekComplete; BackgroundMediaPlayer.MessageReceivedFromForeground += HandleBackgroundMediaPlayerMessageReceivedFromForeground; backgroundTaskStarted.Set(); backgroundTaskState = BackgroundTaskState.Running; backgroundTaskDefferal = taskInstance.GetDeferral(); PlayQueueManager.Current.TrackChanged += HandlePlayQueueTrackChanged; ApplicationSettings.PutSettingsValue(ApplicationSettings.IS_BACKGROUND_PROCESS_ACTIVE, true); if (ApplicationSettings.GetSettingsValue<bool>(ApplicationSettings.IS_FOREGROUND_PROCESS_ACTIVE, false)) { Logger.Current.Init(LogType.AudioFunction); Logger.Current.Log(new CallerInfo(), LogLevel.Info, "Sending message to the FG -- BackgroundStarted"); PlayQueueManager.Current.SendMessageToForeground(PlayQueueConstantBGMessageId.BackgroundStarted); foregroundTaskState = ForegroundTaskState.Running; } else { Logger.Current.Init(LogType.AudioFunction); Logger.Current.Log(new CallerInfo(), LogLevel.Info, "Didn't send message to the FG because FG not started"); foregroundTaskState = ForegroundTaskState.Stopped; } }
public void Run(IBackgroundTaskInstance taskInstance) { Logger.Current.Init(LogType.BG); PlayQueueManager.Current.Connect(); systemMediaTransportControls = SystemMediaTransportControls.GetForCurrentView(); systemMediaTransportControls.ButtonPressed += HandleSystemMediaTransportControlsButtonPressed; systemMediaTransportControls.PropertyChanged += HandleSystemMediaTransportControlsPropertyChanged; systemMediaTransportControls.IsEnabled = true; systemMediaTransportControls.IsPauseEnabled = true; systemMediaTransportControls.IsPlayEnabled = true; systemMediaTransportControls.IsNextEnabled = true; systemMediaTransportControls.IsPreviousEnabled = true; taskInstance.Canceled += HandleTaskInstanceCanceled; taskInstance.Task.Completed += HandleTaskInstanceTaskCompleted; taskInstance.Task.Progress += Task_Progress; BackgroundMediaPlayer.Current.CurrentStateChanged += HandleBackgroundMediaPlayerCurrentStateChanged; BackgroundMediaPlayer.Current.SeekCompleted += HandleBackgroundMediaPlayerSeekComplete; BackgroundMediaPlayer.MessageReceivedFromForeground += HandleBackgroundMediaPlayerMessageReceivedFromForeground; backgroundTaskStarted.Set(); backgroundTaskState = BackgroundTaskState.Running; backgroundTaskDefferal = taskInstance.GetDeferral(); PlayQueueManager.Current.TrackChanged += HandlePlayQueueTrackChanged; ApplicationSettings.PutSettingsValue(ApplicationSettings.IS_BACKGROUND_PROCESS_ACTIVE, true); if (ApplicationSettings.GetSettingsValue <bool>(ApplicationSettings.IS_FOREGROUND_PROCESS_ACTIVE, false)) { Logger.Current.Log(new CallerInfo(), LogLevel.Info, "Sending message to the FG -- BackgroundStarted"); PlayQueueManager.Current.SendMessageToForeground(PlayQueueConstantBGMessageId.BackgroundStarted); foregroundTaskState = ForegroundTaskState.Running; } else { Logger.Current.Log(new CallerInfo(), LogLevel.Info, "Didn't send message to the FG because FG not started"); foregroundTaskState = ForegroundTaskState.Stopped; } }
private void HandleTaskInstanceCanceled(IBackgroundTaskInstance taskInstance, BackgroundTaskCancellationReason reason) { PlayQueueManager.Current.Disconnect(); TileUpdateManager.CreateTileUpdaterForApplication("App").Clear(); Logger.Current.Init(LogType.AudioFunction); Logger.Current.Log(new CallerInfo(), LogLevel.Info, "AudioPlayer Background Task Completed id:{0} reason:{1}", taskInstance.Task.TaskId, reason.ToString()); ApplicationSettings.PutSettingsValue(ApplicationSettings.IS_BACKGROUND_PROCESS_ACTIVE, false); if (ApplicationSettings.GetSettingsValue<bool>(ApplicationSettings.IS_FOREGROUND_PROCESS_ACTIVE, false)) { PlayQueueManager.Current.SendMessageToForeground(PlayQueueConstantBGMessageId.BackgroundEnded); } backgroundTaskState = BackgroundTaskState.Stopped; PlayQueueManager.Current.TrackChanged -= HandlePlayQueueTrackChanged; BackgroundMediaPlayer.Current.CurrentStateChanged -= HandleBackgroundMediaPlayerCurrentStateChanged; taskInstance.Task.Completed -= HandleTaskInstanceTaskCompleted; taskInstance.Canceled -= HandleTaskInstanceCanceled; BackgroundMediaPlayer.Shutdown(); Logger.Current.Flush(); backgroundTaskDefferal.Complete(); }
public BackgroundTaskStateChangedMessage(BackgroundTaskState state) { this.TaskState = state; }
public BackgroundTaskStateChangedMessage(object sender, string taskId, BackgroundTaskState state) : base(sender) { this.TaskId = taskId; this.TaskState = state; }
private async void BackgroundMediaPlayer_MessageReceivedFromBackground(object sender, MediaPlayerDataReceivedEventArgs e) { RefreshStateMessage refresh; if (MessageService.TryParseMessage(e.Data, out refresh)) { if (refresh.Refresh == RefreshState.NeedRefresh) { Albums.notifyrefresh += Albums_notifyrefresh; await Albums.Refresh(); ApplicationSettingsHelper.ReadResetSettingsValue("NewAdded"); } } BackgroundTaskStateChangedMessage backgroundTaskMessage; if (MessageService.TryParseMessage(e.Data, out backgroundTaskMessage)) { // StartBackgroundAudioTask is waiting for this signal to know when the task is up and running // and ready to receive messages if (backgroundTaskMessage.TaskState == BackgroundTaskState.Running && BackgroundState != BackgroundTaskState.Running) { backgroundAudioTaskStarted.Set(); BackgroundState = BackgroundTaskState.Running; } return; } }