我正在尝试运行此处列出的示例:http: //qt-project.org/doc/qt-5.1/qtmultimedia/qaudiooutput.html#details我是 C++ 和 Qt 的新手,所以我不知道出他们的意思。这就是我试图实现它的方式:
#include <QtWidgets>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <string>
#include <QObject>
#include <QAudioOutput>
int main() {
QFile sourceFile; // class member.
QAudioOutput* audio; // class member.
{
sourceFile.setFileName("C:\\Documents\\ParadigmE3-shortened.wav");
sourceFile.open(QIODevice::ReadOnly);
QAudioFormat format;
// Set up the format, eg.
format.setSampleRate(8000);
format.setChannelCount(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)), this, SLOT(handleStateChanged(QAudio::State)));
audio->start(&sourceFile);
}
}
它与描述中的代码相同,只是在一个int main()
函数中。
对于函数末尾附近的行,我收到两个“在非成员函数中无效使用 'this'”错误和一个“没有值的返回语句”错误。我确定我做错了。我尝试使用代码创建一个单独的函数并从中调用它main()
,但这导致调用新函数时出错。