[英]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.