C语言音频输入/输出

3

我已经搜索了使用C语言进行音频捕获/播放的方法,但是没有找到有用的内容。是否存在这样的方法,或者我必须使用其他语言如C++、C#或Java?


2
我认为这个问题是有效的,我有一个答案要补充。libsoundio是一个免费的、跨平台的、开源的音频输入和输出库。它是一个低级别的C接口。http://libsound.io - andrewrk
我已经在C控制台应用程序中使用#pragma comment( lib, "winmm.lib" )完成了这个操作,只是因为我想看看是否可以实现。虽然我正在使用VS2019,但它们并没有真正的C编译器,所以可能在幕后使用的是C++。 - user1853517
2个回答

9

PortAudio 可以完美地从C语言中使用。

PortAudio 是一个免费的跨平台、开源的音频I/O库,它让你可以使用'C'或C++编写简单的音频程序,这些程序可以在多个平台上编译和运行,包括Windows、Macintosh OS X和Unix(OSS/ALSA)。它旨在促进不同平台开发者之间的音频软件交流。许多应用程序都使用PortAudio进行音频I/O。

PortAudio提供了非常简单的API来记录和/或播放声音,使用简单的回调函数或阻塞式读/写接口。示例程序包括播放正弦波、处理音频输入(吉他失真)、录制和播放音频、列出可用的音频设备等。


2

我认为如果要在电脑上使用,没有理由用纯C来捕获和播放音频。但是,使用C++很容易,因为它有现成的库。或者,如果你想使用框架,可以尝试使用C#或Java。


1
我已经用Java完成了它。此外,我在C++/C#中找到了很多例子。但出于个人原因,我想尝试用C来完成它。 - Danilo Valente
其实这很酷!因为它让你更好地理解语言。我以前用C写过一个游戏(出于个人原因),但我也可以用C#来做。那时候我还年轻,在大学里。无论如何,身边的人都对此印象深刻 :) - Mustafa Ekici
1
是的,这正是我想要的。在我看来,在C#中大多数东西已经被制作出来了,你所要做的几乎什么都没有(与C相比)。因此,我可以学习它是如何工作的。 - Danilo Valente
是的,没错。如果你有时间,继续前进。但在商业上,你必须选择简单的方式。 - Mustafa Ekici
是的,不幸的是。好吧,我会尽力学习最多的知识。谢谢 :) - Danilo Valente

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接