internal async void radRecord_Checked(Object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            try
            {
                if (!m_bRecording)
                {
                    //if camera does not support lowlag record and lowlag photo at the same time
                    //disable all buttons while preparing lowlag record
                    btnTakePhoto2.IsEnabled = false;
                    btnStartStopRecord2.IsEnabled = false;
                    //uncheck TakePhoto Mode
                    radTakePhoto.IsChecked = false;
                    //disable check option while preparing lowlag record
                    radTakePhoto.IsEnabled = false;
                    radRecord.IsEnabled = false;

                    if (m_bLowLagPrepared)
                    {
                        //if camera does not support lowlag record and lowlag photo at the same time
                        //but lowlag photo is already prepared, un-prepare lowlag photo first, before preparing lowlag record 
                        await m_lowLagPhoto.FinishAsync();

                        m_bLowLagPrepared = false;
                        //prepare lowlag record
                        PrepareForVideoRecording();

                        m_recordStorageFile = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync(VIDEO_FILE_NAME, Windows.Storage.CreationCollisionOption.GenerateUniqueName);
                        ShowStatusMessage("Create record file successful");
                        MediaEncodingProfile recordProfile = null;
                        recordProfile = MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Auto);
                        m_lowLagRecord = await m_mediaCaptureMgr.PrepareLowLagRecordToStorageFileAsync(recordProfile, m_recordStorageFile);
                        btnStartStopRecord2.IsEnabled = true;
                        m_bRecording = true;
                        btnStartStopRecord2.Content = "StartRecord";

                        //re-enable check option, after lowlag record finish preparing
                        radTakePhoto.IsEnabled = true;
                        radRecord.IsEnabled = true;

                    }
                    else //(!m_bLowLagPrepared)
                    {
                        //if camera does not support lowlag record and lowlag photo at the same time
                        //lowlag photo is not prepared, go ahead to prepare lowlag record 
                        PrepareForVideoRecording();

                        m_recordStorageFile = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync(VIDEO_FILE_NAME, Windows.Storage.CreationCollisionOption.GenerateUniqueName);
                        ShowStatusMessage("Create record file successful");
                        MediaEncodingProfile recordProfile = null;
                        recordProfile = MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Auto);
                        m_lowLagRecord = await m_mediaCaptureMgr.PrepareLowLagRecordToStorageFileAsync(recordProfile, m_recordStorageFile);
                        btnStartStopRecord2.IsEnabled = true;
                        m_bRecording = true;
                        btnStartStopRecord2.Content = "StartRecord";

                        //re-enable check option, after lowlag record finish preparing
                        radTakePhoto.IsEnabled = true;
                        radRecord.IsEnabled = true;
                    }
                }
            }
            catch (Exception exception)
            {
                ShowExceptionMessage(exception);
            }
        }
        private async void PrepareLowLagRecordAsync()
        {
            try
            {
                PrepareForVideoRecording();

                m_recordStorageFile = await Windows.Storage.KnownFolders.VideosLibrary.CreateFileAsync(VIDEO_FILE_NAME, Windows.Storage.CreationCollisionOption.GenerateUniqueName);
                ShowStatusMessage("Create record file successful");
                MediaEncodingProfile recordProfile = null;
                recordProfile = MediaEncodingProfile.CreateMp4(Windows.Media.MediaProperties.VideoEncodingQuality.Auto);
                m_lowLagRecord = await m_mediaCaptureMgr.PrepareLowLagRecordToStorageFileAsync(recordProfile, m_recordStorageFile);
                m_bRecording = true;
                btnStartStopRecord2.Content = "StartRecord";
                btnStartStopRecord2.IsEnabled = true;
            }
            catch (Exception exception)
            {
                ShowExceptionMessage(exception);
            }
        }