c#-连接Console.Beep声音的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-连接Console.Beep声音的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1475字,纯文字阅读大概需要3分钟。
内容图文
![c#-连接Console.Beep声音的方法](/upload/InfoBanner/zyjiaocheng/661/d7e27b194f694b92afdb6331266cb4a4.jpg)
我一直在玩一些C#并专门制作声音…because it’s fun.所以我已经将其全部工作了,但Console.Beep()却使我有些烦恼:它不会直接连接声音.例如,运行下面的代码将导致一系列250毫秒的声音突发-但不是全部同时运行并听起来好像是一个声音,而是变得脱节了,每个声音之间都有?50ms的间隔.
for(int i = 0; i < 11; i++)
{
Console.Beep(980, 250);
}
所以问题是,是否有任何编程方式可以使系统一起运行声音?我不得不说我并不真的希望有这样的情况,但是我认为这是一个值得询问的问题,因为许多other resources似乎只是接受事实,那就是事实并非如此.
解决方法:
您不能,该方法使用内核的功能.我将证明:
[SecuritySafeCritical]
[HostProtection(SecurityAction.LinkDemand, UI = true)]
public static void Beep(int frequency, int duration)
{
if (frequency < 37 || frequency > 32767)
{
throw new ArgumentOutOfRangeException("frequency", frequency, Environment.GetResourceString("ArgumentOutOfRange_BeepFrequency", new object[]
{
37,
32767
}));
}
if (duration <= 0)
{
throw new ArgumentOutOfRangeException("duration", duration, Environment.GetResourceString("ArgumentOutOfRange_NeedPosNum"));
}
Win32Native.Beep(frequency, duration);
}
这是Console.Beep的代码,它使用Win32Native.Beep实际执行蜂鸣声(除了上面的检查之外),该方法导致:
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern bool Beep(int frequency, int duration);
从内核导入的功能.
除非您对内核进行硬编码和修改,否则您将无法这样做. (我确定您不想这么做)
我可以给您一个替代方案:http://naudio.codeplex.com/,您可以使用此工具并为其提供声音流,从而控制声音. (您可以创建不使用文件作为源的流)
内容总结
以上是互联网集市为您收集整理的c#-连接Console.Beep声音的方法全部内容,希望文章能够帮你解决c#-连接Console.Beep声音的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。