使用DirectSound(DirectX API)使用C#播放声音
这似乎是一个非常基本的问题,但即使通过研究几个小时,我也无法找出我做错了什么 我试图编写一个简单的控制台应用程序,用来播放资源中的声音,下面是我的代码:使用DirectSound(DirectX API)使用C#播放声音,c#,audio,directx,directsound,C#,Audio,Directx,Directsound,这似乎是一个非常基本的问题,但即使通过研究几个小时,我也无法找出我做错了什么 我试图编写一个简单的控制台应用程序,用来播放资源中的声音,下面是我的代码: using System; using Microsoft.DirectX.DirectSound; namespace AudioPlayer { class Program { static void Main() { Console.WriteLine("Playi
using System;
using Microsoft.DirectX.DirectSound;
namespace AudioPlayer
{
class Program
{
static void Main()
{
Console.WriteLine("Playing...");
Device device = new Device();
SecondaryBuffer buffer = new SecondaryBuffer(AudioPlayer.Properties.Resources.AudioFile, device);
// AudioPlayer.Properties.Resources.AudioFile returns a stream
buffer.Play(0, BufferPlayFlags.Default);
Console.WriteLine("Finished");
Console.ReadKey(true);
}
}
}
但我得到的只是一个没有文本的控制台窗口,虽然至少应该打印“播放…”,而且也没有声音
我正在使用Visual Studio 2015,它提供了暂停应用程序的选项,如果我这样做,它会告诉我所有线程当前都在处理外部代码。考虑到这一点,我假设我的程序在创建设备或缓冲区时被卡住了,但接着又是Console.WriteLine(“Playing…”)代码>似乎未执行
其他信息:
- .NET framework 4.6版
- 32位程序
- 声音文件格式:WAV
- 编解码器:MPEG-1音频层3(MP3)
如果有人能解释我失败的地方,那就太好了!如果这是重复的,或者如果我犯了一个非常愚蠢的错误,那么很抱歉,但是在花了这么多时间之后,我仍然无法找到解决方法,也无法找到已经存在的解释。在.WAV文件中指定了什么编解码器?你能从Windows资源管理器中播放.WAV文件吗?您可能缺少编解码器?如何查找编解码器?是的,我可以从资源管理器中查找文件(使用Windows Media Player)@MickyExcellent,编解码器似乎出现了。要知道是哪一个,请看@Micky好的,谢谢!该文件使用MPEG-1音频第3层编解码器(MP3)。