Tag: xaudio2

通过XAudio2播放窦

我正在使用XAudio2制作音频播放器。 我们以640字节的数据包流式传输数据,采样率为8000Hz,采样深度为16字节。 我们正在使用SlimDX来访问XAudio2。 但是在播放声音时,我们注意到声音质量很差。 例如,这是一个3KHz的正弦曲线,用Audacity捕获。 我已经将音频播放器浓缩到了基础,但音频质量仍然不好。 这是XAudio2,SlimDX或我的代码中的错误,还是仅仅是从8KHz到44.1KHz时出现的伪像? 最后一个似乎是不合理的,因为我们还生成了由Windows Media Player完美播放的PCM wav文件。 以下是基本实现,它生成断开的正弦。 public partial class MainWindow : Window { private XAudio2 device = new XAudio2(); private WaveFormatExtensible format = new WaveFormatExtensible(); private SourceVoice sourceVoice = null; private MasteringVoice masteringVoice = null; private Guid KSDATAFORMAT_SUBTYPE_PCM = new Guid(“00000001-0000-0010-8000-00aa00389b71”); private AutoResetEvent BufferReady = new AutoResetEvent(false); private PlayBufferPool […]

如何在WinRT中使用SharpDX同时播放多个声音?

我正在尝试制作乐器类型的应用程序。 我遇到的问题是只有旧的声音完成后才能播放新的声音。 我希望能够同时播放它们。 这就是我的代码的样子: 首先,MyWave类只包含音频缓冲区和其他一些信息: class MyWave { public AudioBuffer Buffer { get; set; } public uint[] DecodedPacketsInfo { get; set; } public WaveFormat WaveFormat { get; set; } } 在SoundPlayer类中: private XAudio2 xaudio; private MasteringVoice mvoice; Dictionary sounds; // Constructor public SoundPlayer() { xaudio = new XAudio2(); xaudio.StartEngine(); mvoice = new MasteringVoice(xaudio); sounds = […]