3

我正在 WinCE 中的 .NET Compact 上运行一些 C# 软件,该软件位于手持设备的 TITAN 板上。有报告说保存.wav文件时出现间歇性错误,多次录制后设备有时无法录制,直到设备重新启动后才会再次录制。

我已经在开发工具包上复制了该错误,并且通过调试发现,在录制 .wav 文件时,正在使用 waveInOpen 和 waveInClose 方法(来自 coredll.dll)。但是,当问题发生时,waveInOpen 返回 MMSYSERROR.ALLOCATED,表明正在使用资源(误报)。永远不会在没有调用 waveInClose 的情况下调用 waveInOpen 来清除资源。

有谁知道这个 dll、硬件或强制资源释放以便重新开始录制的方法有任何问题?

4

1 回答 1

1

请注意,在使用 Windows CE 时,您不应该仅仅假设操作系统将是 100% 可靠的。OEM 必须创建驱动程序和 OAL 代码以使操作系统适应其硬件,并且在该过程中肯定会引入错误。

如果您 100% 确定您对 Open 和 Close 的调用是配对的,那么听起来很像音频驱动程序本身存在问题。我建议您尽可能创建最简单的重现应用程序,然后将其传递给原始设备制造商的支持团队,并让他们进行调查。

于 2012-08-06T14:18:01.113 回答