C# 为什么对waveOutGetPosition的调用挂起?
我正在使用C# 为什么对waveOutGetPosition的调用挂起?,c#,audio,windows-vista,C#,Audio,Windows Vista,我正在使用winmm.dllAPI方法waveOutGetPosition获取WAV文件播放的当前位置。有时,这对我来说就像预期的那样,但最终其中一个调用永远不会返回,我的应用程序也会锁定 我发现有几个用户遇到了同样的问题: 但没有解决办法。以前有人遇到过这个问题吗 更新:我能够创建一个示例应用程序,可靠地再现问题: 但是仍然没有修复它。你能将调用锁定在自己的线程中,并在确定的时间后将其杀死,而不是让它挂起你的应用程序吗?不会真正解决问题,但至少可以让您继续。解决方案是使用MessageWi
winmm.dll
API方法waveOutGetPosition
获取WAV文件播放的当前位置。有时,这对我来说就像预期的那样,但最终其中一个调用永远不会返回,我的应用程序也会锁定
我发现有几个用户遇到了同样的问题:
但没有解决办法。以前有人遇到过这个问题吗
更新:我能够创建一个示例应用程序,可靠地再现问题:
但是仍然没有修复它。你能将调用锁定在自己的线程中,并在确定的时间后将其杀死,而不是让它挂起你的应用程序吗?不会真正解决问题,但至少可以让您继续。解决方案是使用MessageWindow而不是回调-MessageWindow允许waveOutGetPosition成功返回而不会死锁。如果您可以重现该行为,我建议联系Microsoft支持部门,提交一个bug,看看是否有可用的修复方法。@Mattias:如果没有人可以修复它,我会试试。