簡體   English   中英

如何在計時器上播放媒體文件?

[英]how to play the media file on timer?

該函數playMedia在timer_tick函數內一次又一次地調用60秒鍾...我如何一次調用它,以便我的歌曲在該間隔內連續播放而不循環。...這首歌是我的媒體元素。

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        timer.Start();
        timer.Tick +=timer_tick;
    }

int flagmusic=0;

public void timer_tick(object sender, object args)
{
  //if some condition which is true for 60 secs
   playMedia();
  //else
  song.stop();
}

 private void playMedia()
    {

         try
         {
                 Uri pathUri = new Uri("ms-appx:///Assets/breath.mp3");
                 song.Source = pathUri;
                 song.Play();
        }
        catch { }

    }

我不確定我是否正確解釋了您的問題。 據我了解,調用OnNavigatedTo時,您要開始播放歌曲,讓其播放60秒,然后停止播放。

如果是這樣,我將從在類范圍內創建計時器開始,並在程序啟動時對其進行初始化:

Timer timer = new Timer();
timer.Tick += timer_tick;
timer.Interval = 60000;
timer.Stop();  // make sure it's not running

OnNavigatedTo ,啟動聲音並啟動計時器。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    playMedia();
    timer.Start();
}

因此,歌曲正在播放,計時器正在運行。 計時器計時時,停止播放歌曲並停止計時器。

public void timer_tick(object sender, object args)
{
    timer.Stop();
    song.stop();
}

它在您的原始代碼中多次播放歌曲的原因是,每次調用OnNavigatedTo時,都會使用timer.Tick += timer_tick; 已添加到計時器事件的調用列表中。 因此,第一次調用該函數時,歌曲只播放了一次。 下次,它播放了兩次。 然后是三,四等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM