Название: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: kobra от Август 15, 2012, 14:59 Доброго времени суток
Пишу небольшое приложения для обработки звука, но сразу столкнулся с проблемой. Попробовал отобразить названия устройств: Код: QList<QAudioDeviceInfo> list = QAudioDeviceInfo::availableDevices(QAudio::AudioInput); Цитировать "Iannea ano?. iee?ioiia (IDT Hig" Первое что непонятно почему названия в такой кодировке, а второе почему обрезано. Ну и третье что такое default."Iee?ioii (IDT High Definition A" "Noa?ai ieeoa? (IDT High Definit" "default" Зашел в настройки Skype список следующий: Цитировать Массив встр. микрофона (IDT High Definition Audio CODEC) Микрофон (IDT High Definition Audio CODEC) Стерео микшер (IDT High Definition Audio CODEC) Ладно по сравнению списков, понятно что за что отвечает. Пробую отобразить информацию о Массив встр. микрофона. Код: void printInfoAboutAudioDevice(QAudioDeviceInfo device, QString name) Цитировать Supported byte orders( "INPUT" ): Как видим пусто. То же для для других кроме Default, здесь все ок: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" ): Цитировать Supported byte orders( "INPUT" ): Но я не знаю что он из себя представляет, у меня кроме тех 3 девайсов больше ничего на компе нет(если точнее то кроме первого ничего нет на самом деле)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 Такой же результат для AudioOutput Название: Re: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: LisandreL от Август 15, 2012, 18:04 "default" - устройство, которое выбрано по умолчанию в системе для ввода или вывода.
Проблема с названиями имеется, кодировка вроде бы cp1252. Название: Re: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: xokc от Август 16, 2012, 09:34 1. Про "default" тебе уже ответили.
2. Про кодировку тоже. Можно перекодировать. 3. Будет всегда обрезанным по 32 байта с учётом последнего "\0". По крайней мере в линейке Qt 4.8.x. Я бы не рекомендовал пользоваться QAudioInput для более/менее серьёзных задач. Причины можешь поискать в этом же разделе форума. Рекомендую воспользоваться для ввода/вывода звука любой из бесплатных кроссплатформенных библиотек типа RtAudio, portaudio и т.д. Прекрасно интегрируются и легко используются совместно с Qt. Тоже обсуждалось здесь же. Название: Re: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: kobra от Август 16, 2012, 14:11 1. Понятно. Не понятно почему. У меня нет параметров для других девайсов.
2. Чесно не понятно как перекодировать. Пробовал написать: Код: QTextCodec::setCodecForLocale(QTextCodec::codecForName("Windows-1251")) 3. Очень жаль, как то не очень умно обрезать названия. QAudioInput мне нужно только чтоб получить отсчеті. Дальше они попадают под обработку БПФ и других алгоритмов. Название: Re: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: LisandreL от Август 16, 2012, 14:52 Чесно не понятно как перекодировать. Пробовал написать: Надо именно перекодировать (так как в самом Qt какая-то ошибка с кодировками):Код: QTextCodec::setCodecForLocale(QTextCodec::codecForName("Windows-1251")) Код
Цитировать "Микрофон (Realtek High Definiti" Но это именно ошибка Qt (его реализации под Windows)."default" На багтрекере предлагают использовать QtMultimediaKit из QtMobility. Название: Re: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: xokc от Август 17, 2012, 14:28 QAudioInput мне нужно только чтоб получить отсчеті. Ну вот те перечисленные библиотеки предназначены именно для этого и умеют это делать гораздо лучше, чем QAudioInput.Название: Re: Проблема с кодировкой и параметрами QAudioDeviceInfo Отправлено: Авварон от Сентябрь 14, 2012, 16:34 Я фиксил этот баг в прошлом году, но из-за переезда на геррит патч похерился. В результате его пофиксили только сейчас в 4.8.3 (кутеха теперь хранит имена девайсов в utf8, а не latin1 (гыгы))
|