diff -r 56cd8111b7f7 -r 41300fa6a67c examples/multimedia/audioinput/audioinput.cpp --- 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 devices = QAudioDeviceInfo::deviceList(QAudio::AudioInput); + QList 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 = "<bytesReady()<<" bytes, clock = "<clock()/1000<<"ms, totalTime = "<totalTime()/1000<<"ms"; + qWarning()<<"bytesReady = "<bytesReady()<<" bytes, elapsedUSecs = "<elapsedUSecs()<<", processedUSecs = "<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");