Mpd, выбор устройства вывода звука.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
aurodionov
Сообщения: 87
Зарегистрирован: Пн янв 27, 2014 2:50 pm
Откуда: Россия, Тюмень
Благодарил (а): 12 раз
Поблагодарили: 14 раз

Mpd, выбор устройства вывода звука.

Сообщение aurodionov » Ср апр 02, 2014 9:28 am

В мпд есть замечательная функция -выбор звуковой или стрим поток для вывода звука
отталкиваясь от этого можно перенаправлять звук на пример мультирум ,автор модуля для мпд добавте пожайлуста если есть возможность
Vip
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 5:36 pm
Откуда: Kiev, Ukraine
Благодарил (а): 4 раза
Поблагодарили: 14 раз

Re: Mpd, выбор устройства вывода звука.

Сообщение Vip » Вс апр 13, 2014 10:43 pm

У себя решил путём утилиты sndswitch.exe и сценариями на её основе
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Mpd, выбор устройства вывода звука.

Сообщение sergejey » Пн апр 14, 2014 10:23 am

Vip писал(а):У себя решил путём утилиты sndswitch.exe и сценариями на её основе
А что за утилита?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Vip
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 5:36 pm
Откуда: Kiev, Ukraine
Благодарил (а): 4 раза
Поблагодарили: 14 раз

Re: Mpd, выбор устройства вывода звука.

Сообщение Vip » Вт апр 15, 2014 1:38 am

оригинальное название - defsound.exe
Утилита DefSound предназначена для переключения текущего аудио устройства воспроизведения по-умолчанию. Минимальные системные требования: Windows Vista и старше.

Утилита ориентирована на тех людей, которые довольно часто переключают аудио устройства. Я писал ее для себя, что бы переключать между динамиками своего ноутбука и внешним ЖК – телевизором, подключенным через HDMI. После недолгого поиска по интернету стало понятно, что документированного способа установки аудио устройства по-умолчанию просто нет. На CodeProject'е и SourceForg'е я нашел пару утилит, которые открывали mmsys.cpl, скрывали окно CPL'ки и эмулировали нажатие клавиш клавиатуры! Причем, при поиске окна даже учитывалась локализация ОС. В общем: люди написали замечательные костыли :)

Поэтому я провел небольшое исследование, в результате которого описал интерфейс IPolicyConfig: CLSID {870af99c-171d-4f9e-af0d-e63df40c2bc9}, IID {f8679f50-850a-41cf-9c72-430f290290c8} и IPolicyConfigVista: CLSID {294935CE-F637-4E7C-A41B-AB255460B862}, IID {568b9108-44bf-40b4-9006-86afe5b5a620}. Именно этим in-proc COM интерфейсом, реализованном в библиотеке AudioSes.dll, пользуется стандартная CPL'ка. О ходе и результатах исследования я написал небольшую статью.

В текущей версии утилиты реализованы роли и командная строка. Что такое роли я объяснять не буду, а дам ссылку на статью в MSDN'е. Там все прекрасно описано.

Командная строка утилиты DefSound довольна проста. Если запускать утилиту без параметров, то она будет мирно висеть в вашем системном трее. По клику правой кнопки мыши выпадает контекстное меню, в котором можно изменять устройство аудио воспроизведение по-умолчанию.

При запуске утилиты с параметрами, процесс изменяет текущее аудио устройство и выходит. Формат командной строки выглядит следующим образом:


DefSound.exe <NUMBER> [STRING]


Устройство задается обязательным числовым параметром (NUMBER), который является начинающимся с нуля индексом устройства из списка всех активных аудио устройств (в том же порядке, как они отображаются в списке контекстного меню).

Второй опциональный строковой параметр STRING задает роль аудио устройства. Параметр может быть одним из значений, приведенный в таблице ниже:
ALL все роли (это значение используется, если не задать иного)
CON консоль (системные звуковые уведомления)
MMEDIA мультимедиа (музыка, фильмы и т.п.)
VOICE голосовое общение

В тестируемых мною системах роли CON и MMEDIA совпадали. При изменении устройства для одной роли, оно так же менялось и для другой. Разделение на две роли я оставил на будущее.

Например вызов:


DefSound.exe 0


Утилита установит первое аудио устройство из списка устройством по-умолчанию для всех ролей.

Скачать утилиту DefSound и ее исходный код
Всё сводится к параметру порядкового номера устройства воспроизведения.
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Mpd, выбор устройства вывода звука.

Сообщение Bagir » Ср авг 13, 2014 9:53 pm

А я все еще до сих пор борюсь с ветряными мельницами, чтобы не переключать устройство по умолчанию. Но чем дальше изучаю этот вопрос, тем больше склоняюсь к выбору Вашего метода, хоть мне это и не нравится.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Vip
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 5:36 pm
Откуда: Kiev, Ukraine
Благодарил (а): 4 раза
Поблагодарили: 14 раз

Re: Mpd, выбор устройства вывода звука.

Сообщение Vip » Пт авг 15, 2014 6:31 pm

Тоже не нравиться, но времени жалко "докапываться"... Работает и ладно :)
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Mpd, выбор устройства вывода звука.

Сообщение Bagir » Сб авг 16, 2014 12:02 am

Так а как пользоваться? постоянно при каждой фразе или проигрывании файла переключать устройство, а потом обратно? На сколько стабильно и быстро работает переключение? Как то не нравится мне этот вариант, при условии, что обычного простого способа переключить устройство нет, и приходится заходить "с тылу". Да и вообще, я не люблю для своих нужд дергать глобальные настройки системы. Для себя, в качестве заплаты, я выбрал другой вариант. Создал второго пользователя, и у него выбрал основной вторую звуковуху. И теперь запускаю свою программу от имени этого пользователя.
psexec.exe -u User2 -p MyPassvord -d MyPogram.exe
Да, знаю как это выглядит ((, но работает отлично, и пока у меня альтернативы нет.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Mpd, выбор устройства вывода звука.

Сообщение Bagir » Пн авг 18, 2014 1:26 am

Объясните пожалуйста в двух словах работу .\rc\sapi.js Зачем там запись в wav, перекодирование в mp3 и проигрывание по средствам sndrec32? Чтобы не озвучивать одинаковый текст дважды?
Может стоит по колдовать над sapi.js и сделать в нем выбор звуковой карты. Там же уже есть выбор диктора. Да заодно и в .\lib\common.class.php в функции playSound уйти от madplay.exe. Если заменить ее на php код, да еще и тоже с выбором устройства вывода звука, то вообще можно уйти от сторонней программы-плеера. И озвучка текста и проигрывание коротких звуков будут всецело под контролем. Тогда отпадает смысл ведения списка и очереди, чтобы одно не накладывалось на другое и все звучало в нужной последовательности.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить