C++某个键关闭时录制音频,直到它打开
C++ Recording Audio When a Certain Key Is Down Until it is Up
基本上,我需要一个在Linux中运行并在按住alt时记录到.wav或.flac的程序。到目前为止,我有一个程序(C++),它可以识别 alt 何时启动或关闭,但我需要一种方法来记录直到我发布它。以下是我到目前为止的一些伪代码:
while 1:
if altChanged:
if altIsDown:
//Call system(arecord OPTIONS > /tmp/blah.wav) to record audio.
end
else
//Get PID
//Use system(kill PID) to fake Ctrl+C and stop recording
end
end
end
这不起作用,因为我太愚蠢了,看不到当我进行第一次系统调用以尝试等待 arecord 结束时程序停止,但由于程序没有达到杀戮,它永远不会这样做。我需要弄清楚如何进行线程处理吗?或者有一个库,我可以在那里作弊并做一个记录.start();record.stop();函数集?
system()
函数根本不适合太多(甚至可能比这更不合适)。调用外部应用程序的最佳选择是直接使用 fork()
/execl()
(或其他 exec 函数)。
由于您使用的是 Linux,因此最好的选择是将源代码拉到您当前调用 system() 的任何外部应用程序,并弄清楚如何将该功能添加到您自己的代码中。
此外,您可能希望有一个专用线程来观看事件以开始/停止录制。
相关文章:
- 用c++阅读音频
- 为什么这个音频包络不能通过开关的情况?
- FFMpeg库:如何在音频文件中精确查找
- 需要反转音频步进公式
- 如何在音频处理中使用超能力时间拉伸类
- C++新手,想知道如何使用VS code 2019播放音频文件
- 如何暂停插孔音频客户端
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 将音频从浏览器流式传输到WebRTC本机C++应用程序
- 使用IMFSourceReader(Microsoft媒体基金会)进行音频流传输
- 大声音频无法播放
- 让 iaxClient 将音频发送到缓冲区而不是音频设备/从缓冲区获取音频
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 波形音频 - waveOutWrite 发出断断续续的声音
- WASAPI 共享模式:音频引擎预期的振幅是多少?
- 在Win7上,在默认端点上轮询音频会话有时会崩溃
- 媒体基金会:WavSink以比实时消耗率更快的速度处理音频-是否可以实时限制后台处理
- PJSUA在两个或多个不同的音频声卡之间切换
- 当直接渲染到WASAPI时,两个流中的一个流没有音频输出
- FFmpeg av_read_frame从音频流返回数据包