Russian Qt Forum

Qt => Мультимедиа => Тема начата: Гурман от Июнь 14, 2015, 18:14



Название: (РЕШЕНО) Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: Гурман от Июнь 14, 2015, 18:14
Не вижу в описании, как открыть именно этот поток аудио. Или это и есть deafultInputDevice?


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: xokc от Июнь 15, 2015, 11:39
Стандартный ответ для всех SoundAPI - всё зависит от звуковой платы, драйвера и выбранного API. Надо вывести перечень всех устройств для всех API и посмотреть что там есть похожего на этот whatyouhear. В общем случае может вообще и не быть такого "устройства", иногда нужно настраивать микшер.


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: Гурман от Июнь 15, 2015, 16:56
Ну вот у меня QAudioDeviceInfo::availableDevices(QAudio::AudioInput) находит один Realtek HD Audio Input, несколько модемных линий и "default". И что из этого WYH-сигнал? Только опытным путём? Или надо микшер настраивать? Как?


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: xokc от Июнь 15, 2015, 17:56
default - это в терминологии драйверов от Realtek то, что установлено в Windows как "Устройство по умолчанию" в настройках "Записывающие устройства". Что там там будет обозначено, как текущее устройство, то и будет использовано в качестве источника записи по-умолчанию. А WYH, кстати, я вообще давненько в микшерах не видел. Какая версия Windows?


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: Гурман от Июнь 15, 2015, 18:45
версия не важна, суть не в версии или названии устройстова - суть в том, какое устройство использовать, чтобы получить выход микшера звуковой платы (WYH - это просто старое привычное название выхода микшера)

тот же вопрос будет, когда это будет для Linux собрано, там Network Audio System используется, пока не ясно, как сделать, чтобы там тоже выбирать выход аудио-микшера


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: xokc от Июнь 15, 2015, 19:31
Повторюсь, в Windows через QAudioInput, в общем случае - никак.
Вот тут http://blogs.msdn.com/b/matthew_van_eerde/archive/2014/11/05/draining-the-wasapi-capture-buffer-fully.aspx
написано как реализовать WUH с помощью WASAPI (рекомендуемый API для работы со звуком в Windows Vista и выше). Что с этим делать в линукс - ничего сказать не могу, реального опыта борьбы со звуком в нём у меня нет. Но, судя по этому сообщению http://www.prog.org.ru/index.php?topic=27535.msg199929#msg199929 там всё примерно так же - что в миксере настроено в качестве источника записи, то и будет писаться в defaultDevice.


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: Гурман от Июнь 15, 2015, 21:18
через WASAPI я делал лет 8 назад, еще с Qt 3.3, и в Linux всё получалось, его собственными средствами через OSS

потом в Linux аудио стали делать на ALSA, там муторный API, и хочется обойтись только нативными средствами Qt, чтобы не было зверинца



Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: Гурман от Июнь 16, 2015, 17:08
Не... не выходит каменный цветок... ввод QAudioInput работает, с микрофона USB-гарнитуры сигнал есть, я его получаю. Но выход микшера никак нигде не видно, ни на каком-либо входе или выходе, перепробовал все варианты.

А что насчёт RtAudio, portaudio - там есть возможность получить выход микшера?


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: xokc от Июнь 16, 2015, 19:36
Если драйвера звуковой платы не предоставляют такого устройства как WUH или чего-то аналогичного, то ни RtAudio, ни portaudio не дадут перехватить текущий воспроизводимый звук. Я вообще правильно задачу понимаю:
Кто-то что-то говорит в микрофон, например, в скайпе, и нужно получить доступ к тем отсчетам, которые идут в настоящий момент на динамик?


Название: Re: Qt 4.7 QAudioInput ввод WHATUHEAR
Отправлено: Гурман от Июнь 16, 2015, 21:28
Не совсем. Нужно получить выход микшера - всю играющую музыку, независимо от источника, сигнал с микрофона, системные звуки и т.д.

Заработало! Надо было в настройках Реалтековского микшера включить "Record - Stereo Mix". Забыл совсем, что там переключатель есть, он на микрофоне стоял.

Увы, управлять из Qt настройками драйвера невозможно, по крайней мере, я не вижу как.