/// <summary>
 /// Start to update the remaining time
 /// </summary>
 void StartTimerForRemainingTime()
 {
     PlayWatch.Start();
     // Any background code that needs to update the user interface
     Device.BeginInvokeOnMainThread(() =>
     {
         // interact with UI elements
         Device.StartTimer(new TimeSpan(0, 0, 0, 1, 0), UpdateRemainingPlayTime);
         Device.StartTimer(new TimeSpan(0, 0, 0, 0, 100), UpdateProgressbar);
     });
 }
        async public void Init(Record record)
        {
            PlayControlImage  = PLAY_ON;
            _record           = record;
            VolumeViewVisible = false;
            CurrentVolume     = _playService.Volume;
            if (CurrentVolume == 0)
            {
                Mute                = true;
                MuteOnOffImage      = VOLUME_OFF;
                MuteOnOffSmallImage = VOLUME_OFF_SMALL_IMAGE;
            }
            else
            {
                Mute                = false;
                MuteOnOffImage      = VOLUME_ON;
                MuteOnOffSmallImage = VOLUME_ON_SMALL_IMAGE;
            }

            RemainingTime = record.Duration;
            Console.WriteLine(" [PlayBackPageModel] RemainingTime : " + RemainingTime);
            int minutes = RemainingTime / 60000;
            int seconds = (RemainingTime - minutes * 60000) / 1000;
            int total   = minutes * 60 + seconds;

            Console.WriteLine(" [PlayBackPageModel] minutes : " + minutes + ", seconds:" + seconds + ", total:" + total);
            PlayingProcess     = 0.0;
            VolumeLevelProcess = CurrentVolume / MaxVolumeLevel;
            Console.WriteLine(" [PlayBackPageModel] VolumeLevelProcess : " + VolumeLevelProcess);
            // calculate value (unit: 100ms)
            play_progressbar_delta = (1.0 / total) / 10;
            Console.WriteLine(" [PlayBackPageModel] play_progressbar_delta : " + play_progressbar_delta);
            _Touched = false;

            PlayWatch.Reset();

            _playService.VolumeChanged += _playService_VolumeChanged;
            _playService.RegisterVolumeChangedCallback();
            await _playService.Init(record.Path);
        }
 void StopTimerForRemainingTime()
 {
     PlayWatch.Stop();
 }