Не получается отключить звук.

Поддержка
  • @fox ,
    Знать бы какую еще информацию предоставлять... Простая бродилка по сайту кликает на разные ссылки. После перехода по ссылке и загрузки страницы хочу отключить звук чтобы если на странице будет автоплей чего-нибудь, то его не было слышно.

    Нашел вот такую штуку для решения этой проблемы:
    @fox said in Отключить звук:

    @Antonio Тема уже поднималась. Тут.

    Вот костыль:
    @support said in Возможно ли отключение звука в BAS?:

    Еще можно выполнить действие "Выполнять при каждой загрузке страницы в браузере"

    var mute=function(tag){
        var elems = document.getElementsByTagName(tag);
        for(var i = 0; i < elems.length; i++){
            elems[i].muted=true;
        }
    }
                         
     mute("video");  
     mute("audio");          
    
      document.addEventListener("DOMSubtreeModified", function(event) {
           mute("video");  
           mute("audio");  
      });
    

    Коммит чтобы мьютить браузер в был сделан еще в прошлом году, но он не был принят
    https://bitbucket.org/chromiumembedded/cef/pull-requests/46/add-support-for-muting-a-browser/diff

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

  • @senerg said in Не получается отключить звук.:

    @fox ,
    Знать бы какую еще информацию предоставлять... Простая бродилка по сайту кликает на разные ссылки. После перехода по ссылке и загрузки страницы хочу отключить звук чтобы если на странице будет автоплей чего-нибудь, то его не было слышно.

    Нашел вот такую штуку для решения этой проблемы:
    @fox said in Отключить звук:

    @Antonio Тема уже поднималась. Тут.

    Вот костыль:
    @support said in Возможно ли отключение звука в BAS?:

    Еще можно выполнить действие "Выполнять при каждой загрузке страницы в браузере"

    var mute=function(tag){
        var elems = document.getElementsByTagName(tag);
        for(var i = 0; i < elems.length; i++){
            elems[i].muted=true;
        }
    }
                         
     mute("video");  
     mute("audio");          
    
      document.addEventListener("DOMSubtreeModified", function(event) {
           mute("video");  
           mute("audio");  
      });
    

    Коммит чтобы мьютить браузер в был сделан еще в прошлом году, но он не был принят
    https://bitbucket.org/chromiumembedded/cef/pull-requests/46/add-support-for-muting-a-browser/diff

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

    Вы просто запихали этот код в действие "яварскипт"?

  • @senerg Поищите по форуму, почему в действии "яваскрипт" не весь код js срабатывает :D
    Попробуйте такой код:

    var mute=function(tag){var elems = document.getElementsByTagName(tag);for(var i = 0; i < elems.length; i++){elems[i].muted=true;}};mute("video");mute("audio");document.addEventListener("DOMSubtreeModified", function(event) {mute("video");mute("audio");});
    
  • @fox said in Не получается отключить звук.:

    Попробуйте такой код:

    Все равно звук есть. Загружается страница, выполняется яваскрипт, а потом все равно появляется автоплей со звуком. Или действие яваскрипт нужно до загрузки страницы применять?

  • @senerg said in Не получается отключить звук.:

    @fox said in Не получается отключить звук.:

    Попробуйте такой код:

    Все равно звук есть. Загружается страница, выполняется яваскрипт, а потом все равно появляется автоплей со звуком. Или действие яваскрипт нужно до загрузки страницы применять?

    Действие "яваскрипт" работает в контексте текущей страницы. Давайте больше не будем мучать сферического коня в вакууме? Я проверял на youtube, всё работает.

  • @fox said in Не получается отключить звук.:

    Я проверял на youtube, всё работает.

    Вот тестовый скрипт. Не работает.

  • @senerg said in Не получается отключить звук.:

    @fox said in Не получается отключить звук.:

    Я проверял на youtube, всё работает.

    Вот тестовый скрипт. Не работает.

    Про универсальность метода ни кто не говорил. Ваше видео находится во фрейме, загуглите как получить через js доступ к фрейму.


    Конкретно для этого сайта подойдёт такой вариант

  • @fox said in Не получается отключить звук.:

    Про универсальность метода ни кто не говорил

    Т.е. для всех сайтов невозможно сделать, вообще без вариантов?

  • @senerg said in Не получается отключить звук.:

    @fox said in Не получается отключить звук.:

    Про универсальность метода ни кто не говорил

    Т.е. для всех сайтов невозможно сделать, вообще без вариантов?

    Вы ведь выполняете яваскрипт код и он работает со страницей. А страницы в интеренете могут быть самыми разными с самым разным html кодом. Универсальный метод можно осуществить только работая с движком хромимума. Но мне не известно, придумали ли такой метод.

  • @senerg можно отключить звук в микшере.

  • @uraabk said in Не получается отключить звук.:

    можно отключить звук в микшере.

    Это как? Я имел ввиду отключить только для конкретного скрипта в басе.

  • @senerg said in Не получается отключить звук.:

    @uraabk said in Не получается отключить звук.:

    можно отключить звук в микшере.

    Это как? Я имел ввиду отключить только для конкретного скрипта в басе.

    Это в ручную, для конкретного скрипта в BAS убрать так звук получится. Но не для отдельного потока например.

  • @fox said in Не получается отключить звук.:

    Это в ручную, для конкретного скрипта в BAS убрать так звук получится. Но не для отдельного потока например.

    И как такое сделать чтобы не пришлось при каждом запуске скрипта этот ритуал повторять?

  • @senerg said in Не получается отключить звук.:

    @fox said in Не получается отключить звук.:

    Это в ручную, для конкретного скрипта в BAS убрать так звук получится. Но не для отдельного потока например.

    И как такое сделать чтобы не пришлось при каждом запуске скрипта этот ритуал повторять?

    Значения микшера для приложений сохраняются в винде сами. Если скрипт скомпилированный, то должно быть достаточно 1 раз убрать для него звук. А вообще проявили бы фантазию и загуглили бы способы отключения звука в приложениях.

  • @fox , Уже фантазия устала фантазировать и сил нет костылировать. Хотел по-быстрому парсер с постером написать, а оказалось, изучил столько, что можно смело программистом идти устраиваться на работу).
    Вроде бы такая простая и всеми желанная операция, просто звук отключить... Странно что ее стандартными средствами BAS реализовать нельзя. Самая важная особенность, которую должен знать каждый перед принятием решения о изучении BAS: работает все, но не всегда.

  • @senerg это все тот же парсер али?

  • @uraabk said in Не получается отключить звук.:

    это все тот же парсер али?

    Он уже давно написан. И первый блин совсем не получился комом, работает как автомат Калашникова. Но он на запросах, наверное поэтому так, а с браузерными действиями прям беда, хотя при долгой и мучительной отладке и там можно сделать плюс-минус что-то годное.

  • @senerg да, соглашусь. На запросах лучше работоспособность.

  • @senerg
    Когда вручную в браузере работаешь, браузер тоже иногда барахлит. Бывает сервер что-то не то отдаст или будет отдавать слишком долго, бывает скрипт какой-то не выполнится. Может памяти не хватить или ресурса процессора.
    Т.е. мы изначально пытаемся автоматизировать то, что абсолютно стабильно не работает. В этих условиях справедливо рассчитывать на стабильность скрипта Вы можете только в том случае, если предусмотрите абсолютно все варианты развития событий. В том числе связанные с недоработкой самого BAS.

    Мне не нравится приводить себя в пример, но, возможно, это как-то поможет Вам.
    И в браузерных и в запросных скриптах никогда не заморачиваюсь по поводу того, что какие-то действия не выполняются. В случае ошибки поток просто завершается и перезапускается. Если число неудачных использований ресурса выставить в большое число, а удачных - ограниченное, то этот ресурс будет использоваться повторно до тех пор, пока не выполнится и упрётся в число удач.
    Да, такой метод подходит не всегда. Абсолютно точно уверен, что проектирование алгоритма под такую логику займет намного меньше времени, чем обработка всех ошибок.
    Теоретически.

  • @xclsv , @uraabk , все правильно, в основном проблемы именно из-за сайтов. Но и у BAS есть недоработки. Например, после полной загрузки страницы, ожидания элемента и успешной проверки его видимости сам элемент может быть скрыт под другим элементом. Поэтому даже при таких проверках клик по такому элементу всегда будет неудачным.

  • 0 Votes
    9 Posts
    747 Views
  • 0 Votes
    7 Posts
    1014 Views
  • 0 Votes
    4 Posts
    959 Views
  • 0 Votes
    11 Posts
    2784 Views
  • 1 Votes
    1 Posts
    824 Views