在C#中播放SystemSound
并等待其完成可以通过使用System.Media.SoundPlayer
类来实现。SystemSound
是一个枚举,包含了系统预定义的声音,如SystemSounds.Asterisk
、SystemSounds.Beep
等。
以下是一个示例代码,展示了如何播放SystemSounds.Beep
并等待其完成:
using System;
using System.Threading.Tasks;
using System.Media;
class Program
{
static async Task PlaySystemSoundAndWait(SystemSound sound)
{
using (var player = new SoundPlayer())
{
player.SoundLocation = null; // 不需要设置声音文件路径,因为使用的是系统声音
player.Load(); // 加载系统声音
player.Play(); // 播放声音
// 等待声音播放完成
await Task.Delay((int)player.Duration * 1000);
}
}
static async Task Main(string[] args)
{
Console.WriteLine("Playing SystemSound.Beep...");
await PlaySystemSoundAndWait(SystemSounds.Beep);
Console.WriteLine("SystemSound.Beep played and completed.");
}
}
System.Media.SoundPlayer
类用于播放声音文件或系统声音。Load
方法用于加载声音文件或系统声音。Play
方法用于播放声音。Task.Delay
方法等待声音播放完成。player.Duration
属性返回声音的持续时间(以秒为单位),乘以1000转换为毫秒。SystemSounds
枚举包含了系统预定义的声音,可以直接使用。SoundPlayer
类不需要设置声音文件路径,因为使用的是系统声音。Task.Delay
方法用于等待声音播放完成,但需要注意的是,这种方法并不是完全精确的,因为声音播放的实际完成时间可能会有微小的差异。希望这个示例代码和解释对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云