我正在使用winmm.dll
API方法waveOutGetPosition
来获取WAV文件播放的当前位置。有时这对我来说是预期的,但最终其中一个调用永远不会返回,我的应用程序会锁定。
我发现这个帖子中有一些用户经历过同样的问题:
但没有解决方案。有没有人遇到过这个问题?
更新:我能够创建一个可靠地再现问题的示例应用:
Problem with waveOutWrite and waveOutGetPosition deadlock
但仍然没有修复它。
答案 0 :(得分:0)
你可以在自己的线程中锁定调用并在确定的时间后将其终止,而不是让它挂起你的应用程序吗?不会真正解决问题,但它至少会让你继续。
答案 1 :(得分:0)
解决方案是使用MessageWindow而不是回调 - MessageWindow允许waveOutGetPosition成功返回而不会发生死锁。