C# 使用XAudio2在400k左右播放wav文件时崩溃

C# 使用XAudio2在400k左右播放wav文件时崩溃,c#,slimdx,xaudio2,C#,Slimdx,Xaudio2,我正在尝试在SlimDX应用程序中设置基本声音,并尝试播放音乐 我注意到,当文件大小超过400k左右时,我当前的配置会导致应用程序崩溃。我已经尝试了很多实验来确定这个问题,但我是Xaudio2的新手,所以我有点迷路了 以下是我当前播放声音的方法: public void PlayPCM(XAudio2 device, string fileName) { var fileStream = System.IO.File.OpenRead(fileName); WaveStream stream =

我正在尝试在SlimDX应用程序中设置基本声音,并尝试播放音乐

我注意到,当文件大小超过400k左右时,我当前的配置会导致应用程序崩溃。我已经尝试了很多实验来确定这个问题,但我是Xaudio2的新手,所以我有点迷路了

以下是我当前播放声音的方法:

public void PlayPCM(XAudio2 device, string fileName)
{
var fileStream = System.IO.File.OpenRead(fileName);
WaveStream stream = new WaveStream(fileStream);
fileStream.Close(); // Close the file stream

AudioBuffer buffer = new AudioBuffer(); 
buffer.AudioData = stream;  // Set data of object to the stream we created from a file
buffer.AudioBytes = (int)stream.Length; // Set the length based on that same file. AudioBytes is an INT.
buffer.Flags = BufferFlags.EndOfStream;

SourceVoice sourceVoice = new SourceVoice(device, stream.Format);
sourceVoice.SubmitSourceBuffer(buffer);
sourceVoice.Start();
}
XAudio2和MasteringVoice对象的设置如下(非常基本):

我认为这可能是一个缓冲区问题,但由于这是从流(它本身基于文件)派生的,缓冲区的大小肯定会正确吗

我要找的是一种播放高质量MP3的机制,所以400k的限制并不实用

崩溃本身似乎与XAudio2有关,windows报告:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: BasicWindow_1.exe
  Application Version:  1.0.4922.32663
  Application Timestamp:    51c739ae
  Fault Module Name:    XAudio2_7.dll
  Fault Module Version: 9.29.1962.0
  Fault Module Timestamp:   4c0641e5
  Exception Code:   c0000005
  Exception Offset: 0004f9b3
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:    2057
  Additional Information 1: 6407
  Additional Information 2: 6407583d8bf58366f2379b7d6ccdbdf7
  Additional Information 3: e40a
  Additional Information 4: e40a5f9d027c6ccb4d641ab5c450613f

提前感谢

在Windows 7和x64上,无法使用比400k大得多的wav文件再现此崩溃。我碰巧正在使用vb.net。您可以将声音文件的路径传递给wavestream的构造函数,这有帮助吗?很有趣-感谢您运行测试!我来试试你的建议。你知道你的wav文件的采样率和比特率是多少吗?这样我就可以匹配它了。我已经用一个3mb的wav文件进行了测试,采样率为48k,1536kbps。我尝试了各种采样率,但无法修复它。决定在NAudio重击并在20分钟内播放音乐。真不错。
Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: BasicWindow_1.exe
  Application Version:  1.0.4922.32663
  Application Timestamp:    51c739ae
  Fault Module Name:    XAudio2_7.dll
  Fault Module Version: 9.29.1962.0
  Fault Module Timestamp:   4c0641e5
  Exception Code:   c0000005
  Exception Offset: 0004f9b3
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:    2057
  Additional Information 1: 6407
  Additional Information 2: 6407583d8bf58366f2379b7d6ccdbdf7
  Additional Information 3: e40a
  Additional Information 4: e40a5f9d027c6ccb4d641ab5c450613f