examples/multimedia/audioinput/audioinput.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
child 18 2f34d5167611
--- 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");