Нетривиальная задача ) слегка сломал голову) (8 онлайн)

ну тогда как вариант решать это уже на уровне ГО и ЧС. В далеком 2003 решали подобное установкой их оборудования в помещение передатчика. В момент их включения наш сигнал на ПРД отключался.
 
Последнее редактирование:

doozza

Всплыла проблема , AHK soundplay не играет OGG , в котором сохраняет голосовые телега ...
ну и громкость он глушит через раз , того же фубара ... , короче оч сырая блин история ...
 

doozza

Всплыла проблема , AHK soundplay не играет OGG , в котором сохраняет голосовые телега ...
ну и громкость он глушит через раз , того же фубара ... , короче оч сырая блин история ...
Подозревал нечто подобное.

Пока вижу три варианта.

1) Телега передает голосовые в .oga, у меня на системе они тоже не воспроизводились, поэтому сразу перешёл на вариант с ботом-конвертером в mp3. Этот вариант хоть и сложнее, но уже проверен.

2) Хз что там Soundplay запускает под капотом, но опирается на системные кодеки, так что установить какой-нибудь пак k-lite может помочь, чтобы ogg/oga заиграло из коробки.

3) Если второй не сработает, можно попробовать дописать бота, чтобы конвертировать файл на вашей стороне в удобоваримый формат, который подхватит система.

По поводу громкости, когда скрипт подвисает, надо нажать Continue, чтобы он запустил следующие инструкции и вернул громкость. Но это только на время отладки. Когда воспроизведение заработает без затыков, скрипт должен работать автономно.
 
"По поводу громкости, когда скрипт подвисает, надо нажать Continue, чтобы он запустил следующие инструкции и вернул громкость. Но это только на время отладки. Когда воспроизведение заработает без затыков, скрипт должен работать автономно."


ну у меня пару раз не понижалась громкость , короче тут огромный риск что эфир вообще станет , автономно ...
понизит к примеру и не вернет обратно , либо все это поперек песен пойдет , что тоже стремно

AHK вообщем крайне ненадежная история ...судя по тому что я опробовал ..
 
мысли вслух, если я правильно понял ТЗ,
а что если mute или понижение громкости делать в микшере windows , а не в самих программах (как нибудь с powershell \ .net) ,
типа, играет основной плэйер,
бот сохраняет сообщение в папку, как только появляется новый файл, основной плэйер мютится,
включается фубар, фубар отыграл и мютится,
основной плэйер ан-мютится :rolleyes: как то так?
 
тут какой-то плеер с API нужен, чтобы с питона ему можно было команду отдать придушить сигнал…

давайте думать, [..], подсказывайте (с) ))
 
Я думаю всё же надёжней делать черз пауер шелл. Мы как-то делали программулину, которая искала в текстовых файлах конкретную строку, и изменяла на конкретные значения. И всё как-то работало. Непонятно только зачем именно питон юзать?
 
через ниркмд можно еще , главное чтобы бот телеги его мог запустить )
кстати, SoundVolumeView похоже может автоматизировать мюты

вобщем поковырялся неможко с powershell + SoundVolumeView :Dle37:
если файлы сохраняются ботом в папку на диске, можно сделать такой скрипт (с простеньким gui):

-мониторится определённая папка,
-при появлении нового файла (тип файлов и размер можно менять),
-мютится основной плеер (SoundVolumeView не трогает плеер, только изменяет громкость \ мютит в микшере винды, можно сделать типа фэйд, постепенное уменьшение громкости,)

-проигрывается полученный mp3\ogg файл с назначенной громкостью, в фоновом режиме windows media player (или в ffplay в cli)
-основной плеер ан-мютится
-файл перемещается в папку archive
-скрипт ждёт следующий файл

потестил почти работающую версию на win11 с играющим плэйлистом в aimp, вроде схема работает :oops:
 
  • Like
Реакции: Zerocool
Ну да , но повершелл в 7 рке совершенно другой )
вот такой комбайн получился :Dle80: ,
у меня работало с aimp и windows media player, в принципе всё равно, если микшер винды видит плеер.
насчёт 7 , если установлены .net 4 и powershell 5.1 то должно работать.

- папка с файлами скрипта
копируется на компьютер(нужны права записи в папку, там будут доп компоненты и логи), - запускается скрипт (StartPlayer.bat, или прямо из powershell: .\mute_player_simple.ps1 -Gui)
для простого теста достаточно сделать:
1 - GetComponent - при первом запуске скачивает в папку компоненты, ffplay \ ffmpeg , SoundVolumeView
2 - TestComp - проверяет что компоненты на месте
3 - Watch Folder и Target P{rocesses - выбирается папка с файлами ogg\mp3, и плеер (название exe, или из task manager)
4 - TestEvt - скрипт копирует тест файл ogg в папку
5 - Start - скрипт начинает мониторить папку:
- когда обнаруживается новый файл, начинается фэйд аут и мьют основного плеера,
- запускается ffplay в командной строке, с указанной громкостью
- после завершения, проигранный файл перемещается в папку archive, и начинается ан-мьют и фэйд ин основного плеера
-скрипт ждёт следующий файл
1755960661538.png


доп настройки (можно менять когда скрипт в состоянии Stop)
- Volume , Timeout - c какой громкостью и таймаутом запускать ffplay
- Playback mode - WMP встроенный плеер у меня немного глючил ну и ogg он не любит, поэтому тестил с ffplay (all),
есть опция играть только ogg с ffplay, а mp3 с WMP, или конвертить в mp3 (не тестил)
- Kill play - убивает ffplay если что то зависло, или случайно проигрывается длинный файл, и ан-мьютит основной плеер
- Verbose - доп дебаг логи, если новые файлы не находятся \ не играют
(также Rescan \ Dump - сканировать \ показать список новых файлов)
- TopMost - чтобы gui был поверх других окон
-Fadein Play - fade in в ffplay
-Fade Manual - контроль фэйд аут \ ин основного плеера, минимум, скачки, дилэй между скачками
-AutoSave exit \ Load last - сохраняет настройки на выходе и загружает при запуске
- AutoStart on launch - автостарт мониторинга новых файлов (не тестил)
- save \ load - сохранить \ загрузить настройки вручную
-Autostart+ \ - добавляет ярлык для автозагрузки (не тестил)

при выходе из скрипта, или нажатии стоп, на всякий случай идёт проверка и ан-мьют основного плеера

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

upd. скинул вручную , все равно не играет ) в логе непонятная херня))


powershell_ITKyiPwEG7.png
 
Последнее редактирование:
видимо потому что не может найти компоненты )
странно, они не скачиваются кнопкой GetComponent ?
можно вручную скачать, там 3 файла всего нужно, и кинуть в папку скрипта ffplay.exe и ffmpeg.exe
и soundvolumeview.exe https://www.nirsoft.net/utils/soundvolumeview.zip
 
рестартанул , проиграло то что уже есть в папке , после того как новый положил ) файл , точно так же зависло )
 
странно, проверил ещё раз у себя, работает... :rolleyes:
а версия powershell и .net какая там ?
# PowerShell version
$PSVersionTable.PSVersion
# CLR / .NET version
[System.Environment]::Version
 

evgeny26


Это я у себя на 10 ке дома тестил ...
это наверное с помощью чат жпт написано тож )?) это никогда нормально не работает , к сожалению ..
 

evgeny26

Ну вот именно так оно и работает, потому что код кривой что ппц , и его надо всегда править человеку который в этом понимает ) реально , ( а почти всегда переписывать заново ) ....
 

Сейчас просматривают