Кроме шумов ничего нет. В чем может быть проблема?
QByteArray array;
QFile media;
media.setFileName("C:\\Users\\User\\Desktop\\song.mp3");
media.open(QFile::ReadOnly);
array = media.readAll();
media.close();
QBuffer* buf = new QBuffer;
buf->setBuffer(&array);
buf->open(QIODevice::ReadOnly);
qDebug() << buf->size();
QAudioFormat desiredFormat1;
desiredFormat1.setChannelCount(2);
desiredFormat1.setByteOrder(QAudioFormat::LittleEndian);
desiredFormat1.setCodec("audio/pcm");
desiredFormat1.setSampleType(QAudioFormat::SignedInt);
desiredFormat1.setSampleRate(44100);
desiredFormat1.setSampleSize(16);
QAudioDeviceInfo info1(QAudioDeviceInfo::defaultOutputDevice());
if (!info1.isFormatSupported(desiredFormat1))
{
qWarning() << "Format not supported";
desiredFormat1 = info1.preferredFormat();
}
QAudioOutput* audioOutpu = new QAudioOutput(desiredFormat1);
audioOutpu->start(buf);
QEventLoop loop;
QObject::connect(audioOutpu, SIGNAL(stateChanged(QAudio::State)), &loop, SLOT(quit()));
do {
loop.exec();
} while (audioOutpu->state() == QAudio::ActiveState);
В общем, нашел нужное решение для себя с использованием QMediaPlayer и QByteArray. Оно проще и легче.
QFile file("C:\\Users\\User\\Desktop\\song.mp3");
file.open(QIODevice::ReadOnly);
QByteArray arr = file.readAll();
file.close();
QMediaPlayer *player = new QMediaPlayer;
QBuffer *buffer = new QBuffer(player);
buffer->setData(arr);
buffer->open(QIODevice::ReadOnly);
player->setMedia(QMediaContent(), buffer);
player->play();
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости