/// <summary> /// Starts playback. /// </summary> /// <param name="sender">PlayImage</param> /// <param name="e">Event arguments</param> private void Play_Tap(object sender, RoutedEventArgs e) { if (m_isPlaying) { m_soundTimer.Stop(); PlayImage.Source = new BitmapImage(new Uri("/Assets/play.png", UriKind.Relative)); m_d3dInterop.StopRecordingOrPlayback(); } else { PlayImage.Source = new BitmapImage(new Uri("/Assets/stop.png", UriKind.Relative)); if (m_soundTimer == null) { m_soundTimer = new DispatcherTimer(); m_soundTimer.Tick += RecordingTimer_Tick; m_soundTimer.Interval = TimeSpan.FromSeconds(0.1); } m_playingStartTime = DateTime.Now; m_soundTimer.Start(); m_d3dInterop.StartPlayback(); } RecordImage.IsHitTestVisible = m_isPlaying; RecordImage.Opacity = m_isPlaying ? 1.0 : 0.5; m_isPlaying = !m_isPlaying; }