私は4096のようなサイズのバッファを持っていて、そのバッファにデータを格納します。バッファがいっぱいであれば、バッファの先頭から始まります。これはうまくいくようです。Qt - バッファの先頭からオーディオ再生を設定する方法は?
しかし、私はバッファからデータを再生することに問題があります。
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);
}
}
次のコードも試しましたが失敗しました。あなたが言った方法だと思います。多分私は間違いを犯しましたか?私はquesitonのコードを更新するでしょう:)読みやすくする – Tiina
http://doc-snapshot.qt-project.org/5.0/phonon-gstreamer-audiooutput.html – johnathon
今、私はオーディオの録音と再生を続けていますが、 qAudioOutputがIdleState – Tiina