2009-02-11 46 views
2

XNA是否提供了从输入端输入音频的方法?我看着MSDNA website,但在音频输入找不到任何东西。如果确实有可能,一小段代码或一个教程网站会很棒。XNA是否提供音频输入(线路输入)?

编辑: 我需要从音频线进行缓冲读取。我对实现没有太大的兴趣,而是如果它有低延迟。

此外,开发将实施到只有PC的游戏。

回答

2

如果你正在考虑做一个仅限于Windows的项目,你当然可以捕获来自XNA框架之外的代码并使用相同的代码进行播放。由于XNA内容管理器的工作原理,您将无法使用常规播放方法,因为内容管理器在编译时将所有内容翻译为.xnb文件,并从那里读取它们。尽管使用标准的Windows API调用没有让你玩。在那个时候你并不会真的拥有XNA项目,但我不认为这个区别是非常重要的,因为无论如何你都不希望与其他平台兼容。

3

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

因此,无论你的DirectSound的保持和看样品中: \ SAMPLES \管理\ 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 
+0

如果不使用XACT,很可能播放声音/音乐,如果您不需要XACT的功能,也可以更简单。您可以通过Content.Load()直接加载许多音频格式(WAV,MP3,WMA,仅举几例),使用Audio.SoundEffect和/或Media.Song类来管理它们。 :) – CloudyMusic 2009-02-11 16:42:10

+0

这也适用于阅读从线路?我并不需要太多的播放功能 – yxk 2009-02-11 23:28:30

2

要回答你的问题,不,你不能通过XNA API访问音频输入。你必须看看其他一些库,例如Port Audio,它们可以让你访问这些功能。但是,那么你将被限制在Windows上运行(即没有Xbox或Zune)。

免责声明:不确定端口音频是否具有此功能,因为我只是通过谷歌很快找到它。只是试图说明你不得不使用其他API。