Пытаюсь в бесконечном цикле опрашивать QAudioOutput::bytesFree(), и если буфер пуст, пишу туда данные, но звук получается с прерываниями.
Батарейку так посадишь быстро скорее всего.
Прошу помощи, кто работал с QAudioOutput без сигнал/слотов
Если хочешь работать в синхронном режиме - можно попробовать использовать QEventLoop, псевдокод:
QAudioOutput *audioOutput;
QEventLoop el;
// после обработки аудио данных выход из евент лупа
connect(audioOutput, SIGNAL(notify()), &el, SLOT(quit()));
// 40 миллисекунд интервал
audioOutput->setNotifyInterval(40);
QIODevice *ioDev = audioOutput->start();
while (true) {
// пишем аудиоданные длинной 40 мс
ioDev->write(audioDataLenghtOf40Ms);
// запускаем евентлуп
el.exec();
// .. по прошествии 40 мс решаем выходить ли из цикла или дальше проигрывать
}
хыЖ чем сигналы и слоты не угодили?