gpt4 book ai didi

c++ - Qt - 如何设置音频播放从缓冲区的开头开始?

转载 作者:太空宇宙 更新时间:2023-11-04 12:09:28 25 4
gpt4 key购买 nike

我有一个大小为 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);
}
}

最佳答案

void stateChanged ( QAudio::State state ) <~ 播放器改变时的信号。钩到你类中的一个slot,停止状态时重复播放过程即可。简单的。我喜欢 Qt 的原因之一。

关于c++ - Qt - 如何设置音频播放从缓冲区的开头开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10486540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com