Доброго времени суток
Пишу небольшое приложения для обработки звука, но сразу столкнулся с проблемой.
Попробовал отобразить названия устройств:
QList<QAudioDeviceInfo> list = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
for(int i = 0; i < list.size(); i++)
qDebug() << list.at(i).deviceName();
printInfoAboutAudioDevice(list.at(0),"INPUT");
Получил следующий список:
"Iannea ano?. iee?ioiia (IDT Hig"
"Iee?ioii (IDT High Definition A"
"Noa?ai ieeoa? (IDT High Definit"
"default"
Первое что непонятно почему названия в такой кодировке, а второе почему обрезано. Ну и третье что такое default.
Зашел в настройки Skype список следующий:
Массив встр. микрофона (IDT High Definition Audio CODEC)
Микрофон (IDT High Definition Audio CODEC)
Стерео микшер (IDT High Definition Audio CODEC)
Ладно по сравнению списков, понятно что за что отвечает. Пробую отобразить информацию о Массив встр. микрофона.
void printInfoAboutAudioDevice(QAudioDeviceInfo device, QString name)
{
QAudioDeviceInfo info(device);
QList<QAudioFormat::Endian> listOfByteOrders = info.supportedByteOrders();
qDebug() << "Supported byte orders(" << name << "):";
for(int i = 0; i < listOfByteOrders.size(); i++)
qDebug() << " " << listOfByteOrders.at(i);
QList<int> listOfChannelCounts = info.supportedChannelCounts();
qDebug() << "Supported channel counts(" << name << "):";
for(int i = 0; i < listOfChannelCounts.size(); i++)
qDebug() << " " << listOfChannelCounts.at(i);
QList<int> listOfChannels = info.supportedChannels();
qDebug() << "Supported channels(" << name << "):";
for(int i = 0; i < listOfChannels.size(); i++)
qDebug() << " " << listOfChannels.at(i);
QStringList listOfCodecs = info.supportedCodecs();
qDebug() << "Supported codecs(" << name.toUtf8() << "):";
for(int i = 0; i < listOfCodecs.size(); i++)
qDebug() << " " << listOfCodecs.at(i);
QList<int> listOfFrequencies = info.supportedFrequencies();
qDebug() << "Supported frequencies(" << name << "):";
for(int i = 0; i < listOfFrequencies.size(); i++)
qDebug() << " " << listOfFrequencies.at(i);
QList<int> listOfSampleRates = info.supportedSampleRates();
qDebug() << "Supported sample rates(" << name << "):";
for(int i = 0; i < listOfSampleRates.size(); i++)
qDebug() << " " << listOfSampleRates.at(i);
QList<int> listOfSampleSizes = info.supportedSampleSizes();
qDebug() << "Supported sample sizes(" << name << "):";
for(int i = 0; i < listOfSampleSizes.size(); i++)
qDebug() << " " << listOfSampleSizes.at(i);
QList<QAudioFormat::SampleType> listOfSampleTypes = info.supportedSampleTypes();
qDebug() << "Supported sample types(" << name << "):";
for(int i = 0; i < listOfSampleTypes.size(); i++)
qDebug() << " " << listOfSampleTypes.at(i);
}
Получаю:
Supported byte orders( "INPUT" ):
Supported channel counts( "INPUT" ):
Supported channels( "INPUT" ):
Supported codecs( "INPUT" ):
Supported frequencies( "INPUT" ):
Supported sample rates( "INPUT" ):
Supported sample sizes( "INPUT" ):
Supported sample types( "INPUT" ):
Как видим пусто. То же для для других кроме Default, здесь все ок:
Supported byte orders( "INPUT" ):
1
Supported channel counts( "INPUT" ):
1
2
Supported channels( "INPUT" ):
1
2
Supported codecs( "INPUT" ):
"audio/pcm"
Supported frequencies( "INPUT" ):
8000
11025
22050
44100
48000
96000
Supported sample rates( "INPUT" ):
8000
11025
22050
44100
48000
96000
Supported sample sizes( "INPUT" ):
8
16
Supported sample types( "INPUT" ):
1
2
Но я не знаю что он из себя представляет, у меня кроме тех 3 девайсов больше ничего на компе нет(если точнее то кроме первого ничего нет на самом деле)
Такой же результат для AudioOutput