--- a/examples/multimedia/audioinput/audioinput.cpp Tue Jan 26 12:42:25 2010 +0200
+++ b/examples/multimedia/audioinput/audioinput.cpp Tue Feb 02 00:43:10 2010 +0200
@@ -170,7 +170,7 @@
layout->addWidget(canvas);
deviceBox = new QComboBox(this);
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioInput);
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
for(int i = 0; i < devices.size(); ++i) {
deviceBox->addItem(devices.at(i).deviceName(), qVariantFromValue(devices.at(i)));
}
@@ -195,7 +195,6 @@
pullMode = true;
- // AudioInfo class only supports mono S16LE samples!
format.setFrequency(8000);
format.setChannels(1);
format.setSampleSize(16);
@@ -203,6 +202,17 @@
format.setByteOrder(QAudioFormat::LittleEndian);
format.setCodec("audio/pcm");
+ QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice());
+ if (!info.isFormatSupported(format)) {
+ qWarning()<<"default format not supported try to use nearest";
+ format = info.nearestFormat(format);
+ }
+
+ if(format.sampleSize() != 16) {
+ qWarning()<<"audio device doesn't support 16 bit samples, example cannot run";
+ return;
+ }
+
audioInput = new QAudioInput(format,this);
connect(audioInput,SIGNAL(notify()),SLOT(status()));
connect(audioInput,SIGNAL(stateChanged(QAudio::State)),SLOT(state(QAudio::State)));
@@ -216,7 +226,7 @@
void InputTest::status()
{
- qWarning()<<"bytesReady = "<<audioInput->bytesReady()<<" bytes, clock = "<<audioInput->clock()/1000<<"ms, totalTime = "<<audioInput->totalTime()/1000<<"ms";
+ qWarning()<<"bytesReady = "<<audioInput->bytesReady()<<" bytes, elapsedUSecs = "<<audioInput->elapsedUSecs()<<", processedUSecs = "<<audioInput->processedUSecs();
}
void InputTest::readMore()
@@ -239,7 +249,7 @@
if (pullMode) {
button->setText(tr("Click for Pull Mode"));
- input = audioInput->start(0);
+ input = audioInput->start();
connect(input,SIGNAL(readyRead()),SLOT(readMore()));
pullMode = false;
} else {
@@ -252,7 +262,7 @@
void InputTest::toggleSuspend()
{
// toggle suspend/resume
- if(audioInput->state() == QAudio::SuspendState) {
+ if(audioInput->state() == QAudio::SuspendedState) {
qWarning()<<"status: Suspended, resume()";
audioInput->resume();
button2->setText("Click To Suspend");
@@ -260,7 +270,7 @@
qWarning()<<"status: Active, suspend()";
audioInput->suspend();
button2->setText("Click To Resume");
- } else if (audioInput->state() == QAudio::StopState) {
+ } else if (audioInput->state() == QAudio::StoppedState) {
qWarning()<<"status: Stopped, resume()";
audioInput->resume();
button2->setText("Click To Suspend");