2011-09-12 7 views
1

QAudioInputバイト配列からオーディオサンプルを入手

からデータサンプルを取得し、私はそれm_bufferは、オーディオデータサンプル

が含まれて理解

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); 
    } 
} 

audioinputコード例から、この例のコードで見つかっする方法が、私のオーディオ処理ライブラリは短いサンプルを受け取ります これをショートポインタに変換する方法

マイオーディオライブラリ私は

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; 

答えて

2

This pageからサンプル数を取得することができ、この

putSample(short *Sample, int numberOfSample) 

のような関数は、(読み示す)にデータを保存するために、char *を期待している。あなたがオーディオのフォーマットを設定した場合デバイスが正しくchar配列のshortsとして 'segmented'され、単純にchar *をキャストしてライブラリに渡すことができます。

+0

ありがとうございました –

+0

user899888:この回答を受け入れることを検討する必要があります:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

関連する問題