C#调用Microsoft.DirectX.DirectSound问题记录及解决

时间:2022-08-10 20:42:47

问题1:初始化结构体WaveFormat或其他变量时卡死

修改App.config,修改方法如下:
原App.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

修改后的App.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/> </startup>
</configuration>

问题2:其他信息: DLL“Microsoft.DirectX.DirectSound.dll”正尝试在 OS 加载程序锁内执行托管代码。

把Visual Studio菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉(我没有找到异常菜单,但是使用快捷键Ctrl+Alt+E打开了异常对话框)。我认为这种做法不是解决办法,只是把异常给关掉了,但是暂时没有发现别的方法。

问题3:System.TypeInitializationException

该错误是因为系统没有检测到麦克风引起,所以解决方法是
- 在程序中增加异常处理机制,捕捉异常,及时处理并做相应提示。
- 插入麦克风,或者启用虚拟麦克风