#include "audiodevicehelper.h" #include AudioDeviceHelper::AudioDeviceHelper() { } QAudioInput* AudioDeviceHelper::getDefaultInputDevice() { QAudioFormat fmt; #if QT_VERSION >= QT_VERSION_CHECK (5, 0, 0) fmt.setSampleRate(16000); fmt.setChannelCount(1); #else fmt.setFrequency(16000); fmt.setChannels(1); #endif fmt.setSampleSize(16); fmt.setSampleType(QAudioFormat::SignedInt); fmt.setByteOrder(QAudioFormat::LittleEndian); fmt.setCodec("audio/pcm"); QAudioDeviceInfo it, dev; QList input_list = QAudioDeviceInfo::availableDevices(QAudio::AudioInput) ; dev = QAudioDeviceInfo::defaultInputDevice(); if (dev.deviceName() != "pulse") { foreach(it, input_list) { if(it.deviceName() == "pulse") { dev = it; qDebug("Ok."); break; } } } if (dev.deviceName() == "null") { foreach(it, input_list) { if(it.deviceName() != "null") { dev = it; break; } } } std::cerr << "input device : " << dev.deviceName().toStdString() << std::endl; return new QAudioInput(dev, fmt); } QAudioInput* AudioDeviceHelper::getPreferedInputDevice() { return AudioDeviceHelper::getDefaultInputDevice(); } QAudioOutput* AudioDeviceHelper::getDefaultOutputDevice() { QAudioFormat fmt; #if QT_VERSION >= QT_VERSION_CHECK (5, 0, 0) fmt.setSampleRate(16000); fmt.setChannelCount(1); #else fmt.setFrequency(16000); fmt.setChannels(1); #endif fmt.setSampleSize(16); fmt.setSampleType(QAudioFormat::SignedInt); fmt.setByteOrder(QAudioFormat::LittleEndian); fmt.setCodec("audio/pcm"); QList list_output = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput) ; QAudioDeviceInfo it, dev; dev = QAudioDeviceInfo::defaultOutputDevice(); if (dev.deviceName() != "pulse") { foreach(it, list_output) { if(it.deviceName() == "pulse") { dev = it; break; } } } if (dev.deviceName() == "null") { foreach(it, list_output) { if(it.deviceName() != "null") { dev = it; break; } } } std::cerr << "output device : " << dev.deviceName().toStdString() << std::endl; return new QAudioOutput(dev, fmt); } QAudioOutput* AudioDeviceHelper::getPreferedOutputDevice() { return AudioDeviceHelper::getDefaultOutputDevice(); }