Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Запуск видео при бездействии (https://javascript.ru/forum/dom-window/61718-zapusk-video-pri-bezdejjstvii.html)

yura_yushkevich 04.03.2016 18:56

Запуск видео при бездействии
 
Сразу извиняюсь, может не совсем в тему, но не могу понять с чего начать..... Может быть кто-то делал нечто подобное.

Есть инфокиоск, работает обычный сайт. Задача сделать автоматический запуск определенного локального видеофайла (*.avi) при бездействии пользователя определенное время.
При начале активности ролик должен исчезать.

Может быть видели - это реализовано в некоторых банкоматах, банки запускают свою рекламу.

Заранее спасибо.

рони 04.03.2016 19:20

yura_yushkevich,
на движение мыши и клавиатуру ставить таймер ... если таймер не прервали значит действий на странице нет ... запускаем фильм

yura_yushkevich 04.03.2016 19:26

А фильм запускать в отдельном окне..... сама процедура, когда пользователь стал активен - это окно закрывать.....??? или может в div скрытый сделать?

yura_yushkevich 04.03.2016 19:28

как-то вот так?
idleTimer = null;
idleState = false; // состояние отсутствия
idleWait = 2000; // время ожидания в мс. (1/1000 секунды)
 
$(document).ready( function(){
  $(document).bind('mousemove keydown scroll', function(){
    clearTimeout(idleTimer); // отменяем прежний временной отрезок
    if(idleState == true){ 
      // Действия на возвращение пользователя
       $("body").append("<p>С возвращением!</p>");
    }
 
    idleState = false;
    idleTimer = setTimeout(function(){ 
      // Действия на отсутствие пользователя
      $("body").append("<p>Вы отсутствовали более чем " + idleWait/1000 + " секунд.</p>");
      idleState = true; 
    }, idleWait);
  });
 
  $("body").trigger("mousemove"); // сгенерируем ложное событие, для запуска скрипта
});

yura_yushkevich 04.03.2016 19:56

Окно открывается, только закрываться не хочет почему-то (((

idleTimer = null;
idleState = false; // состояние отсутствия
idleWait = 2000; // время ожидания в мс. (1/1000 секунды)

$(document).ready( function(){
    $(document).bind('mousemove keydown scroll', function(){
        clearTimeout(idleTimer); // отменяем прежний временной отрезок
        if(idleState == true){
            // Действия на возвращение пользователя
            /*$("body").append("<p>С возвращением!</p>");*/
            myWindowClose ();
        }

        idleState = false;
        idleTimer = setTimeout(function(){
            // Действия на отсутствие пользователя
           /* $("body").append("<p>Вы отсутствовали более чем " + idleWait/1000 + " секунд.</p>");*/
            myWindowOpen ();
            idleState = true;
        }, idleWait);
    });

    $("body").trigger("mousemove"); // сгенерируем ложное событие, для запуска скрипта
});


var myWindow;
function myWindowOpen (){
    myWindow = window.open("video.html", "myWindow", "scrollbars=no, resizable=no");
}

function myWindowClose (){
    if (myWindow) {
        myWindow.close();
        myWindow = null;
    }
}

рони 04.03.2016 20:01

yura_yushkevich,
может убрать проверку из строки 8

yura_yushkevich 04.03.2016 20:05

да нет, проверка работает..... если снимаю комментарий со строки 10, то появляется текст на исходной странице

yura_yushkevich 04.03.2016 20:12

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


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