private void TimerOnTick(object state) { if (!_start) { return; } // Do in UI Thread InvokeOnMainThread(() => { _remain = _remain.Add(TimeSpan.FromMilliseconds(-100)); // if not remain (= zero seconds), change button status and alert if (_remain.TotalSeconds <= 0) { _start = !_start; _remain = new TimeSpan(0); StartButton.SetTitle("Start", UIControlState.Normal); // alert var sound = new AudioToolbox.SystemSound(1005); // 1005 is alert sound.PlayAlertSound(); } // update remain time ShowRemain(); }); }
//タイマーイベント private void Timer_OnTick(object state) { if (!_isStart) { return; } InvokeOnMainThread(() => { _remainingTime = _remainingTime.Add(TimeSpan.FromMilliseconds(-100)); if (_remainingTime.TotalSeconds <= 0) { //0秒になった _isStart = false; _remainingTime = new TimeSpan(0); StartButton.SetTitle("スタート", UIControlState.Normal); //アラームを鳴らす var sound = new AudioToolbox.SystemSound(1005); sound.PlayAlertSound(); } ShowRemainingTime(); }); }
partial void PlayAlert(UIButton sender) { // Plays the sound as well as vibrates systemSound.PlayAlertSound(); }