你怎么打开麦克风?

时间:2009-07-25 01:05:41

标签: delphi winapi audio microphone

我如何开启麦克风并打开某种直播流来收听我在另一个位置的电脑上发生的事情?这将是一个婴儿监视器项目。

关于我应该这样做的任何想法?我只是在完成代码后才能完成任务。我可以做其余的事。我正在学习德尔福,所以我应该没事。

我还需要能够停止麦克风。在这个阶段,我不想回话,只是实时收听或尽可能接近。

4 个答案:

答案 0 :(得分:6)

哇,大家一直在为此推荐外部包。它内置于Windows中 - waveInOpen / waveInPrepareHeader / waveInBufferRead API应适用于所有版本的Windows。

如果需要更好的控制,也可以使用DirectSoundCapture。

答案 1 :(得分:2)

Audiolab具有所有必需(和更多)功能,并且可以免费用于非商业用途。它还支持Win32和.NET。

如果你想进入低级别,你需要探索API的支持录音之一,如Wave API (example in C++)

答案 2 :(得分:1)

我找到了Wave Audio Package,它有一个用于录制音频的组件。它可以记录到文件或流中,也可以在数据块可用时调用事件处理程序。

它包含一个音频重定向器,它将从一个地方(如录音机组件,在您的情况下)中获取音频并将其发送到其他地方(例如播放组件)。如果你想在收集麦克风时播放麦克风的音频,你可能会想要它。该软件包附带了一些演示。

除了默认设置之外,重定向器看起来还可以接受其他播放对象,因此如果您想在另一台计算机上播放声音,那么您可以尝试编写一个通过网络发送数据而不是发送数据的后代类给当地的演讲者。

答案 3 :(得分:0)

我通过Delphi对Windows环境进行的大量集成是通过COM / ActiveX对象实现的。查找CoCreateInstance calls,然后尝试找到将为您处理麦克风的ActiveX control