Qt 开发人员在 Qt4 的后期版本中已经开始减少他们对 Phonon 集成的努力,而是专注于 Qt Multimedia 和 Qt Mobility 模块。尽管他们仍然支持 Phonon。
正如您所说,从 Qt5 开始,不再支持 Phonon。因此,请改用Qt Multimedia,尤其是QAudioOutput。
正如他们在“详细说明”下的文档中列出的那样,播放音频文件看起来像这样:
QFile inputFile; // class member.
QAudioOutput* audio; // class member.
inputFile.setFileName("/tmp/test.raw");
inputFile.open(QIODevice::ReadOnly);
QAudioFormat format;
// Set up the format, eg.
format.setFrequency(8000);
format.setChannels(1);
format.setSampleSize(8);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
if (!info.isFormatSupported(format)) {
qWarning()<<"raw audio format not supported by backend, cannot play audio.";
return;
}
audio = new QAudioOutput(format, this);
connect(audio,SIGNAL(stateChanged(QAudio::State)),SLOT(finishedPlaying(QAudio::State)));
audio->start(&inputFile);