【发布时间】:2023-03-05 20:24:01
【问题描述】:
XNA 是否提供从线路输入音频输入的方法?我查看了MSDNA website,但在音频input 上找不到任何内容。如果确实有可能,sn-p 代码或教程网站会很棒。
编辑: 我需要从音频线路中进行缓冲读取。我对实现不是很感兴趣,而是它是否具有低延迟。
还将在 PC 游戏中实现开发。
【问题讨论】:
XNA 是否提供从线路输入音频输入的方法?我查看了MSDNA website,但在音频input 上找不到任何内容。如果确实有可能,sn-p 代码或教程网站会很棒。
编辑: 我需要从音频线路中进行缓冲读取。我对实现不是很感兴趣,而是它是否具有低延迟。
还将在 PC 游戏中实现开发。
【问题讨论】:
我认为所有的声音文件都需要经过 XACT 编译才能在 XNA 中使用。
因此,您要么掌握 DirectSound 并查看以下示例: \Samples\Managed\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
【讨论】:
如果您正在考虑做一个仅限 Windows 的项目,您当然可以捕获来自 XNA 框架之外的代码的音频并用相同的代码播放。由于 XNA 内容管理器的工作方式,您将无法使用常规播放方法,因为内容管理器在编译时将所有内容转换为 .xnb 文件并从那里读取它们。不过,没有什么能阻止您使用标准 Windows API 调用进行游戏。那时你不会真的有一个 XNA 项目,但我认为这种区别并不那么重要,因为无论如何你都不希望与其他平台兼容。
【讨论】:
要回答您的问题,不,您不能通过 XNA API 访问音频线路输入。您必须查看其他一些库,例如 Port Audio,它可以让您访问此类功能。但是你会被限制在 Windows 上运行(即没有 xbox 或 zune)。
免责声明:不确定端口音频是否特别具有此功能,因为我刚刚通过 google 快速找到了它。只是想说明您必须使用其他一些 API。
【讨论】: