C# 弹奏小星星之旅
需要添加外部引用 Windows Media Player,后缀为 .dll的
using WMPLib;
实现播放音乐文件效果。

以上是音频文件,每个文件都是单独的一个钢琴音频。
实现代码
static void Main(string[] args) { while (true) { try { ConsoleKeyInfo ck = Console.ReadKey(true); char c = ck.KeyChar; Console.WriteLine(c); WindowsMediaPlayer wm = new WindowsMediaPlayer(); wm.URL = @"D:\VS\source\LittleStar\" + c + ".mp3"; }catch(Exception e) { } } }
总结:这里面的try{ }catch(){ }并不是多余的,没错,运行会有错,报异常,这里只是抓出来,并没有处理
当同时快速的输入多个键时,有时能够弹奏出来,但有时就会报一个(解决“消息筛选器显示应用程序正在使用中。 ((错误来自 HRESULT: 0x8001010A(RPC_E_SERVERCALL_RETRYLATER)) ”的报错问题)的问题。
在尝试过加锁、线程休眠后发现效果不明显。因为这里线程已经完成了,出问题的时这个外部的 WindowsMediaPlayer 的问题。
尝试将 WindowsMediaPlayer wm = new WindowsMediaPlayer(); 这一句放在循环之外,但是这个播放的声音会随着下一个按键的到来终止,客户体验0分。
最后只能 try{ }catch 了,等以后知识丰富了,再来完善这里所欠缺的。
附上小星星简谱一份


浙公网安备 33010602011771号