たとえば4096のサイズのバッファがあり、そこにデータを格納します。バッファがいっぱいの場合、バッファの先頭から開始されます。これはうまくいくようです。
しかし、バッファからのデータの再生に問題があります。
QByteArray m_buffer;
QBuffer m_audioOutputIODevice;
QAudioOutput* m_audioOutput;
m_audioOutputIODevice.close();
m_audioOutputIODevice.setBuffer(&m_buffer);
m_audioOutputIODevice.open(QIODevice::ReadOnly);
m_audioOutput->start(&m_audioOutputIODevice);
これでバッファからサウンドを再生できますが、バッファの終わりに達すると再生が停止します。コードを変更して、バッファーの終わりに達したときにすべて最初から開始するようにするにはどうすればよいですか?どうもありがとうございます
更新コード:
connect(m_audioOutput,SIGNAL(stateChanged(QAudio::State)),SLOT(resetPlayBuffer(QAudio::State)));
void bufferPlayback::resetPlayBuffer (QAudio::State state)
{
if (state == QAudio::IdleState) {
m_audioOutputIODevice.close();
m_audioOutputIODevice.setBuffer(&m_buffer);
m_audioOutputIODevice.open(QIODevice::ReadOnly);
}
}