我的要求是创建一个实用程序,它可以录制语音(通过麦克风),并将.wav文件作为桌面和web应用程序保存在磁盘上。对于特定的用户,我选择了activeX技术,因为我没有找到任何其他更好的方法(可能您知道并可以指导我..将非常受欢迎)
我使用winmm.dll (又称媒体控制接口(MCI)),它工作得很好,但在特定的计算机上,比如我在vista上运行它时,它工作得很好,在win server 2008上也工作得很好,但在windows2003和xp上就不行了。只是工作,有没有什么先决条件..它需要在那里,或者我应该做什么,以使它在其他风格的windows上工作。
如果some1推荐使用一些示例代码来录制/保存/播放示例,我不介意使用DirectSound :)
发布于 2009-05-08 04:24:03
我会使用DirectShow来捕获音频。由于您在问题中添加了C#标记,因此我建议使用DirectShow.NET library。确保您还下载了samples,并查看了Capture文件夹中的PlayCap和CapWMV示例。您可能还想在CodeProject上查看Audio Capture article。
至于为什么某些操作系统版本可以正常工作,您是否确认这些系统上的音频输入可以与其他程序一起工作?您是允许用户选择音频设备还是仅使用默认音频设备?你是收到错误信息还是没有声音?根据此forum,请确保将文件名括在双引号中。
发布于 2009-05-08 04:45:18
实际上没有错误,没有异常,甚至没有输出我正在创建的wav文件,而它在vista和2k8上运行良好,但不是以前的版本。
我使用的是默认声卡,没有显式设置
使用以下代码
[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);录制
mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
mciSendString("record recsound", "", 0, 0);停止并保存
mciSendString(@"save recsound " + OuputFolderName + FileName + ".wav", "", 0, 0);
mciSendString("close recsound ", "", 0, 0);发布于 2009-12-11 07:54:17
如果您仍在寻找.net库,请查看此处:
http://windowsmedianet.sourceforge.net/index.html
还有这里
http://www.tapiex.com/ToneDecoder.Net.htm
第一个是在LGPL许可下的,第二个是商业组件套件。
https://stackoverflow.com/questions/838190
复制相似问题