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