XNA是否提供音频输入(线路输入)?

时间:2009-02-11 05:37:03

标签: c# xna

XNA是否提供了来自线路输入的音频输入方式?我查看了MSDNA website,但在音频输入上找不到任何内容。如果它确实可行,那么代码片段或教程网站就会很棒。

编辑: 我需要从音频线进行缓冲读取。我对实现并不是很感兴趣,而是它具有低延迟。

此外,开发将在仅限PC的游戏中实施。

3 个答案:

答案 0 :(得分:3)

我认为所有声音文件都需要由XACT编译才能在XNA中使用。

所以你要么掌握DirectSound并查看以下示例: \样品\管理\ DirectSound的\ CaptureSound

...或者你可以与winmm.dll互操作。这家伙做了一个如何做的小例子: http://www.codeproject.com/KB/audio-video/cswavrec.aspx

这家伙写了更多关于枚举所有录音设备的内容: http://www.codeproject.com/KB/cs/Enum_Recording_Devices.aspx

希望它有所帮助!

编辑:

我不确定您要对音频流做什么,所以本教程也可能会引起关注: http://nyxtom.vox.com/library/post/recording-audio-in-c.html

编辑2: 他所说的(在评论中)

        |
        |
        V

答案 1 :(得分:2)

要回答您的问题,不,您无法通过XNA API访问音频输入。您必须查看其他库,例如Port Audio,这样您就可以访问这些功能。但是你必须限制在Windows上运行(即没有xbox或zune)。

免责声明:不确定端口音频是否具有此功能,因为我刚通过谷歌快速找到它。只是想说明你必须使用其他一些API。

答案 2 :(得分:2)

如果你正在寻找一个仅限Windows的项目,你当然可以捕获来自XNA框架之外的代码的音频,并使用相同的方式播放它。由于XNA内容管理器的工作方式,您将无法使用常规回放方法,因为内容管理器在编译时将所有内容转换为.xnb文件并从那里读取它们。没有什么能阻止你使用标准的Windows API调用。那时你真的不会有一个XNA项目,但我认为这种区别并不重要,因为你还不想与其他平台兼容。