/// <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;
        }