В мпд есть замечательная функция -выбор звуковой или стрим поток для вывода звука
отталкиваясь от этого можно перенаправлять звук на пример мультирум ,автор модуля для мпд добавте пожайлуста если есть возможность
Mpd, выбор устройства вывода звука.
Модератор: immortal
-
- Сообщения: 87
- Зарегистрирован: Пн янв 27, 2014 2:50 pm
- Откуда: Россия, Тюмень
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
-
- Сообщения: 86
- Зарегистрирован: Вт авг 28, 2012 5:36 pm
- Откуда: Kiev, Ukraine
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Mpd, выбор устройства вывода звука.
У себя решил путём утилиты sndswitch.exe и сценариями на её основе
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Mpd, выбор устройства вывода звука.
А что за утилита?Vip писал(а):У себя решил путём утилиты sndswitch.exe и сценариями на её основе
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 86
- Зарегистрирован: Вт авг 28, 2012 5:36 pm
- Откуда: Kiev, Ukraine
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Mpd, выбор устройства вывода звука.
оригинальное название - 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, выбор устройства вывода звука.
А я все еще до сих пор борюсь с ветряными мельницами, чтобы не переключать устройство по умолчанию. Но чем дальше изучаю этот вопрос, тем больше склоняюсь к выбору Вашего метода, хоть мне это и не нравится.
-
- Сообщения: 86
- Зарегистрирован: Вт авг 28, 2012 5:36 pm
- Откуда: Kiev, Ukraine
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Mpd, выбор устройства вывода звука.
Тоже не нравиться, но времени жалко "докапываться"... Работает и ладно
- Bagir
- Сообщения: 1613
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Mpd, выбор устройства вывода звука.
Так а как пользоваться? постоянно при каждой фразе или проигрывании файла переключать устройство, а потом обратно? На сколько стабильно и быстро работает переключение? Как то не нравится мне этот вариант, при условии, что обычного простого способа переключить устройство нет, и приходится заходить "с тылу". Да и вообще, я не люблю для своих нужд дергать глобальные настройки системы. Для себя, в качестве заплаты, я выбрал другой вариант. Создал второго пользователя, и у него выбрал основной вторую звуковуху. И теперь запускаю свою программу от имени этого пользователя.
psexec.exe -u User2 -p MyPassvord -d MyPogram.exe
Да, знаю как это выглядит ((, но работает отлично, и пока у меня альтернативы нет.
psexec.exe -u User2 -p MyPassvord -d MyPogram.exe
Да, знаю как это выглядит ((, но работает отлично, и пока у меня альтернативы нет.
- Bagir
- Сообщения: 1613
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Mpd, выбор устройства вывода звука.
Объясните пожалуйста в двух словах работу .\rc\sapi.js Зачем там запись в wav, перекодирование в mp3 и проигрывание по средствам sndrec32? Чтобы не озвучивать одинаковый текст дважды?
Может стоит по колдовать над sapi.js и сделать в нем выбор звуковой карты. Там же уже есть выбор диктора. Да заодно и в .\lib\common.class.php в функции playSound уйти от madplay.exe. Если заменить ее на php код, да еще и тоже с выбором устройства вывода звука, то вообще можно уйти от сторонней программы-плеера. И озвучка текста и проигрывание коротких звуков будут всецело под контролем. Тогда отпадает смысл ведения списка и очереди, чтобы одно не накладывалось на другое и все звучало в нужной последовательности.
Может стоит по колдовать над sapi.js и сделать в нем выбор звуковой карты. Там же уже есть выбор диктора. Да заодно и в .\lib\common.class.php в функции playSound уйти от madplay.exe. Если заменить ее на php код, да еще и тоже с выбором устройства вывода звука, то вообще можно уйти от сторонней программы-плеера. И озвучка текста и проигрывание коротких звуков будут всецело под контролем. Тогда отпадает смысл ведения списка и очереди, чтобы одно не накладывалось на другое и все звучало в нужной последовательности.