我有4秒的wav文件。我可以在循环播放
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.Stream = Properties.Resources.ringtone;
player.PlayLooping();
但在再次播放wav之前我需要2秒的间隔时间。
我的意思是4 seconds(sound) + 2 seconds(no sound) + 4 seconds(sound) and so on...
它是如何存在的。
答案 0 :(得分:4)
using System.Threading;
using System.Threading.Tasks;
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.Stream = Properties.Resources.ringtone;
Task.Run(()=>
{
while (true)
{
player.Play();
Thread.Sleep(2000);
}
});
如果你不想阻止gui,你需要放入后台线程。
答案 1 :(得分:0)
using System.Threading;
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.Stream = Properties.Resources.ringtone;
while (condition)
{
player.Play();
Thread.Sleep(6000);
}
如果您希望无限期播放,则可以将condition
与true
交换为无限循环,或根据您的要求使用其他条件。如果这是在主线程上,那么你需要创建像背景工作者这样的东西,这样它就不会锁定你的表格。
答案 2 :(得分:0)
如果您将其调用两次或更多次,则Player.Play()无法正常工作。 使用此方法:player.PlaySync()。
player.PlaySync();
Thread.Sleep(2000);
player.PlaySync();
Thread.Sleep(2000);
...