- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试监视音频输入并将音频记录到文件中,但仅在超过级别阈值时才进行。 Qt 中的录制似乎有两个主要选项; QAudioRecorder和 QAudioInput .
长话短说:我正在尝试找到可以获取从QAudioInput
读取的原始音频样本数据的API并将其记录到文件中,就像 QAudioRecorder
确实如此,但奇怪的是它似乎不存在。举个例子, QAudioRecorder
的设置将类似于以下内容(但不是使用 setAudioInput()
指定输入设备,而是传递采样字节):
QAudioEncoderSettings audioSettings;
QAudioRecorder recorder = new QAudioRecorder;
audioSettings.setCodec("audio/PCM");
audioSettings.setQuality(QMultimedia::HighQuality);
recorder.setEncodingSettings(audioSettings);
recorder.setContainerFormat("wav");
recorder.setOutputLocation(QUrl::fromLocalFile("/tmp/test.wav"));
recorder.setAudioInput("default");
recorder.record();
<小时/>
我正在使用QAudioInput
因为我需要访问原始样本。 QAudioInput
的问题是的,Qt 似乎没有提供一种简单的方法来获取我从 QAudioInput
中获得的原始样本。并将它们通过管道传输到一个对它们进行编码的文件中。 QAudioRecorder
做得很好,但你不能将原始样本输入 QAudioRecorder
;您只需告诉它要从哪个设备进行录制以及您希望如何存储它。
注意我尝试使用QAudioInput
和QAudioRecorder
一起-QAudioInput
用于原始访问和 QAudioRecorder
每当我需要记录时,但有两个主要问题:A)一次只能读取其中一个设备。 B) 我想记录超过阈值时和之前的数据,而不是刚刚超过阈值之后的数据。
最佳答案
我最终使用了 QAudioRecorder+QAudioProbe。但有一些限制:
首先,附加的 QAudioProbe
仅在 QAudioRecorder
实际录音时才有效,因此我必须在 QAudioRecorder
上编写一个包装器来打开/关闭通过将输出设备切换到actual_file|/dev/null 进行记录。
第二,正如我所说的“我想在超过阈值时和之前记录数据,而不是在超过阈值之后”。好吧,我不得不对此做出妥协。探针用于检测记录条件,但无法将探针中的数据塞回记录器中。我的意思是,我想您可以在空闲状态下记录到缓冲区文件,并以某种方式预先添加该数据的一部分......但复杂性对我来说不值得。
旁白;有another issue QAudioRecorder
激励我在它上面编写一个包装器。基本上我发现 QAudioRecorder::stop() 有时会无限期挂起。为了解决这个问题,我必须堆分配一个记录器并将其删除,并为每个新记录初始化一个新的记录器。
关于Qt:将原始 QAudioInput 数据写入文件的 API,就像 QAudioRecorder 一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41348496/
我正在开发可以从麦克风采样音频的应用程序。我已经使用 QAudioRecorder 和 QAudioProbe 进行了采样。一切正常。但我刚刚意识到 QAudioRecorder 将录制的音频保存到我
我正在使用 Qt 技术开发针对两个平台(iOS 和 Android)的移动应用程序。 应用程序正在录制声音并在经过一些处理后播放。为此,我使用了来自 QtMultimedia 模块的两个类:QAudi
我正在尝试监视音频输入并将音频记录到文件中,但仅在超过级别阈值时才进行。 Qt 中的录制似乎有两个主要选项; QAudioRecorder和 QAudioInput . 长话短说:我正在尝试找到可以获
我是一名优秀的程序员,十分优秀!