首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在c#中播放SystemSound并等待其完成?

在C#中播放SystemSound并等待其完成可以通过使用System.Media.SoundPlayer类来实现。SystemSound是一个枚举,包含了系统预定义的声音,如SystemSounds.AsteriskSystemSounds.Beep等。

以下是一个示例代码,展示了如何播放SystemSounds.Beep并等待其完成:

代码语言:txt
复制
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.");
    }
}

解释

  1. SoundPlayer类System.Media.SoundPlayer类用于播放声音文件或系统声音。
  2. Load方法Load方法用于加载声音文件或系统声音。
  3. Play方法Play方法用于播放声音。
  4. Task.Delay:使用Task.Delay方法等待声音播放完成。player.Duration属性返回声音的持续时间(以秒为单位),乘以1000转换为毫秒。

注意事项

  • SystemSounds枚举包含了系统预定义的声音,可以直接使用。
  • SoundPlayer类不需要设置声音文件路径,因为使用的是系统声音。
  • Task.Delay方法用于等待声音播放完成,但需要注意的是,这种方法并不是完全精确的,因为声音播放的实际完成时间可能会有微小的差异。

应用场景

  • 在需要播放系统声音并等待其完成的场景中,例如用户操作后的反馈声音。
  • 在自动化测试中,需要确保声音播放完成后再进行下一步操作。

参考链接

希望这个示例代码和解释对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券