diff options
author | Kurt Korbatits <kurt.korbatits@nokia.com> | 2009-12-07 22:07:13 (GMT) |
---|---|---|
committer | Kurt Korbatits <kurt.korbatits@nokia.com> | 2009-12-07 22:07:13 (GMT) |
commit | b70f9d3969fdf7789ba1c5f4d942b2625b1bf689 (patch) | |
tree | 1e485f62affa6f8a6273307d013677c5ea1e782b /examples/multimedia | |
parent | 322db8410bf7609f072837d554e7256dc385265b (diff) | |
download | Qt-b70f9d3969fdf7789ba1c5f4d942b2625b1bf689.zip Qt-b70f9d3969fdf7789ba1c5f4d942b2625b1bf689.tar.gz Qt-b70f9d3969fdf7789ba1c5f4d942b2625b1bf689.tar.bz2 |
audioinput and audiooutput examples not using isFormatSupported
function.
The examples failed to easy, added check to test and get if required
a format to use from the backend. Increases the chance of examples
working on various platforms like n900.
Reviewed-by:Justin McPherson
Diffstat (limited to 'examples/multimedia')
-rw-r--r-- | examples/multimedia/audioinput/audioinput.cpp | 12 | ||||
-rw-r--r-- | examples/multimedia/audiooutput/audiooutput.cpp | 12 |
2 files changed, 23 insertions, 1 deletions
diff --git a/examples/multimedia/audioinput/audioinput.cpp b/examples/multimedia/audioinput/audioinput.cpp index 62afd73..75bddd6 100644 --- a/examples/multimedia/audioinput/audioinput.cpp +++ b/examples/multimedia/audioinput/audioinput.cpp @@ -195,7 +195,6 @@ InputTest::InputTest() pullMode = true; - // AudioInfo class only supports mono S16LE samples! format.setFrequency(8000); format.setChannels(1); format.setSampleSize(16); @@ -203,6 +202,17 @@ InputTest::InputTest() 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))); diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp index 244840d..b6047db 100644 --- a/examples/multimedia/audiooutput/audiooutput.cpp +++ b/examples/multimedia/audiooutput/audiooutput.cpp @@ -170,6 +170,18 @@ AudioTest::AudioTest() settings.setCodec("audio/pcm"); settings.setByteOrder(QAudioFormat::LittleEndian); settings.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(settings)) { + qWarning()<<"default format not supported try to use nearest"; + settings = info.nearestFormat(settings); + } + + if(settings.sampleSize() != 16) { + qWarning()<<"audio device doesn't support 16 bit samples, example cannot run"; + return; + } + audioOutput = new QAudioOutput(settings,this); connect(audioOutput,SIGNAL(notify()),SLOT(status())); connect(audioOutput,SIGNAL(stateChanged(QAudio::State)),SLOT(state(QAudio::State))); |