如何从QAudioInput
获取数据样本我在这个示例代码中找到了audioinput示例代码
的代码 void InputTest::readMore()
{
if(!m_audioInput)
return;
qint64 len = m_audioInput->bytesReady();
if(len > 4096)
len = 4096;
qint64 l = m_input->read(m_buffer.data(), len);
if(l > 0) {
m_audioInfo->write(m_buffer.constData(), l);
}
}
我知道m_buffer包含音频数据样本
但是我的音频处理库收到了短样本 我如何将其转换为短指针
我的音频库功能如下
putSample( short *Sample, int numberOfSample)
我可以从
获取样本数量Q_ASSERT(m_format.sampleSize() % 8 == 0);
const int channelBytes = m_format.sampleSize() / 8;
const int sampleBytes = m_format.channels() * channelBytes;
Q_ASSERT(len % sampleBytes == 0);
const int numSamples = len / sampleBytes;
答案 0 :(得分:2)
This page表示read()期望char *存储数据。如果你已经正确设置了音频设备的格式,那么数据确实会被“分段”为char数组中的short并且你可以简单地将char *转换为short *,然后再将其传递给你的库。