Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как отключить звук при открытии окна (https://javascript.ru/forum/dom-window/62498-kak-otklyuchit-zvuk-pri-otkrytii-okna.html)

SnezhanaLast 13.04.2016 17:25

Как отключить звук при открытии окна
 
Добрый вечер. Такая проблема. При поступлении заказа, включается музыка, нужно сделать чтобы при открытии окна ЦРМ, музыка отключалась. Вот код:
if(data.orders.length>0){
                    if(mode==1){$('.table_box').html('');}
                    $.each(data.orders,function(i,item){
                        if(!window.crm.orderExist(item.ID)){
                            window.crm.renderOrder(item,mode);
                            if(mode==0){
                                $('.new_order_sound')[0].play();
                            }
                        }
                    });
                }else{
                    $('.table_box').html('Ничего не найдено');
                }


<audio class="new_order_sound">
    <source src="<?=$curDir?>/static/ding.ogg" type='audio/ogg; codecs=vorbis'>
</audio>

SnezhanaLast 13.04.2016 19:09

Или может при клике, даже не знаю, как реализовывается подобное. Гуглила.

Alexander Belov 13.04.2016 20:48

SnezhanaLast,
Без полноценного примера не совсем понятно. Но за проигрывание отвечает метод play(), за паузу / не проигрывание - метод pause().

SnezhanaLast 13.04.2016 21:28

Может как-то можно кнопке сделать метод pause() в моем случае? Могу выложить кусок кода побольше. :)

SnezhanaLast 13.04.2016 22:33

Написала вверх JS:
HTMLAudioElement.prototype.stop = function()
{
	this.pause();
	this.currentTime = 0.0;
}

Но когда прописываю кнопке:
onclick="document.getElementById("ding").stop()"

JS перестает работать.

Alexander Belov 13.04.2016 22:43

SnezhanaLast,
выложите live пример. С ним смогу попробовать помочь.

SnezhanaLast 13.04.2016 22:55

Alexander Belov, Если совсем упростить задачу:
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
 
   <script>
      HTMLAudioElement.prototype.stop = function()
     {
            this.pause();
            this.currentTime = 0.0;
     }
      $(function () {
            $('.new_order_sound')[0].play();
      });
   </script>
</head>

<body>
<audio id="ding" class="new_order_sound">
    <source src="http://upload.wikimedia.org/wikipedia/commons/5/59/C_major_scale.ogg" type='audio/ogg; codecs=vorbis'>
</audio>
<input type="button" onclick="document.getElementById("ding").stop();" value="Отключить">
</body>
</html>

Alexander Belov 13.04.2016 23:19

SnezhanaLast,
Как и писал выше, если по умолчанию нужно, чтобы мелодия не проигрывалась, меняйте
$('.new_order_sound')[0].play(); на $('.new_order_sound')[0].pause();

Если по клику, то привязываете к нажатию button функцию
$("button").on("click", function(){
$(".new_order_sound")[0].pause();
});


Не разобрался, как вставлять JQuery код сюда, потому сторонний пример

SnezhanaLast 14.04.2016 08:49

Alexander Belov, Попробовала, нужно действительно, чтобы по клику останавливалась мелодия. Но код не ставит музыку на паузу, а не на стоп.

Alexander Belov 14.04.2016 09:20

SnezhanaLast,
если Вы пропишите изначально pause() при загрузке кода, то музыка не будет проигрываться изначально.
Два метода: play() (= проигрывать) и pause() (= не проигрывать).


Часовой пояс GMT +3, время: 20:00.