-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsoundgenerator.cpp
41 lines (31 loc) · 1014 Bytes
/
soundgenerator.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "soundgenerator.h"
#include "WAVFile.h"
SoundGenerator::SoundGenerator(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
m_deviceBox = new QComboBox(this);
foreach(const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo::availableDevices(QAudio::AudioOutput))
m_deviceBox->addItem(deviceInfo.deviceName(), qVariantFromValue(deviceInfo));
connect(m_deviceBox, SIGNAL(activated(int)), SLOT(deviceChanged(int)));
}
SoundGenerator::~SoundGenerator()
{
}
void SoundGenerator::deviceChanged(int index)
{
m_device = m_deviceBox->itemData(index).value<QAudioDeviceInfo>();
createAudioOutput();
}
void SoundGenerator::createAudioOutput()
{
QString fileName = "./xianliang.wav";
WAVFile *inputFile = new WAVFile;
inputFile->open(fileName, QIODevice::ReadOnly);
QAudioOutput *audio = new QAudioOutput(m_device, inputFile->format());
connect(audio, SIGNAL(stateChanged(QAudio::State)), this, SLOT(audio0(QAudio::State)));
if (inputFile->isReadable())
{
audio->start(inputFile);
}
}