c#中wav文件播放循环的间隔

时间:2015-02-09 10:42:24

标签: c#

我有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...

它是如何存在的。

3 个答案:

答案 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);
}

如果您希望无限期播放,则可以将conditiontrue交换为无限循环,或根据您的要求使用其他条件。如果这是在主线程上,那么你需要创建像背景工作者这样的东西,这样它就不会锁定你的表格。

答案 2 :(得分:0)

如果您将其调用两次或更多次,则Player.Play()无法正常工作。 使用此方法:player.PlaySync()。

player.PlaySync();
Thread.Sleep(2000);
player.PlaySync();
Thread.Sleep(2000);
...