public void Dispose() { if (backgroundAudioTaskStarted != null) { backgroundAudioTaskStarted.Dispose(); backgroundAudioTaskStarted = null; } if (IsAudioPlayerTaskRunning) { RemoveMediaPlayerEventHandlers(); ApplicationSettingsHelper.SaveSettingToLocalSettings(ApplicationSettingsConstants.BackgroundTaskState, BackgroundTaskState.Running.ToString()); } }
private void ResetAfterLostBackground() { BackgroundMediaPlayer.Shutdown(); _isAudioPlayerTaskRunning = false; backgroundAudioTaskStarted.Reset(); ApplicationSettingsHelper.SaveSettingToLocalSettings(ApplicationSettingsConstants.BackgroundTaskState, BackgroundTaskState.Unknown.ToString()); try { BackgroundMediaPlayer.MessageReceivedFromBackground += BackgroundMediaPlayer_MessageReceivedFromBackground; } catch (Exception ex) { if (ex.HResult == RPC_S_SERVER_UNAVAILABLE) { throw new Exception("Failed to get a MediaPlayer instance."); } else { throw; } } }
/// <summary> /// 应用状态恢复 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void App_Resuming(object sender, object e) { ApplicationSettingsHelper.SaveSettingToLocalSettings(ApplicationSettingsConstants.AppState, AppState.Active.ToString()); }