1

我有一个倒数计时器,我想在它到达终点时发出警报……Android 和 iOS 有很多,但我找不到 WP8 的任何东西。

我正在使用 DispatcherTimer 进行倒计时。

我正在寻找有关如何在计时器完成倒计时时调用声音的一些信息或示例。我让计数器在单击按钮时启动并在长按时重置。一切都很好,只是想要在倒计时后停止时有声音效果。

    private DateTime EndTime { get; set; }
    private DispatcherTimer _dispatcherTimer;

    private void BtnCounter_Click(object sender, RoutedEventArgs e)
    {            

        if (this._dispatcherTimer == null)
        {
            this._dispatcherTimer = new DispatcherTimer();
            this._dispatcherTimer.Interval = TimeSpan.FromMilliseconds(100);
            this._dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
        }

        if (this.EndTime == DateTime.MinValue)
        {
            this.EndTime = DateTime.Now + (TimeSpan)this.tsPicker.Value;
        }

        this._dispatcherTimer.Start();


    }

    void dispatcherTimer_Tick(object sender, EventArgs e)
    {
        var remaining = this.EndTime - DateTime.Now;
        int remainingSeconds = (int)remaining.TotalSeconds;
        this.tsPicker.Value = TimeSpan.FromSeconds(remainingSeconds);

        if (remaining.TotalSeconds <= 0)
        {
            this._dispatcherTimer.Stop();
            // Sound code should go here, or a method call to it.
        }
    }

    private void BtnCounter_Hold(object sender, System.Windows.Input.GestureEventArgs e)
    {
        cnt = 0;
        BtnCounter.Content = cnt;
        this._dispatcherTimer.Stop();
        this.EndTime = DateTime.MinValue;
        this.tsPicker.Value = TimeSpan.FromSeconds(0);
    }

    protected override void  OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
        this.EndTime = DateTime.MinValue;
        base.OnNavigatedFrom(e);
    }
4

1 回答 1

1

您是否尝试过使用MediaElement?似乎有一个使用它的好例子,名为Windows Phone 8: Playing Sounds

于 2013-06-09T17:42:22.543 回答