2015-03-28 5 views
1

Как приостановить угловой звук js при закрытии окна браузера и возобновить его снова при максимальном увеличении окна? Это мой код. Я новичок в угловых js. я понятия не имею об этом. кто-нибудь помочь мнеУгловой js audio issue

var app=angular.module("myApp",['ngAudio']); 
    app.controller("myCtrl",function($scope,ngAudio,$window) 
    {$scope.src="aud.mp3"; 
     $scope.play=false; 
     $scope.play=function(){ 
      $scope.audio = ngAudio.load('aud.mp3'); 
      $scope.audio.play(); 
     } 
     $scope.stop=function(){ 
      $scope.audio = ngAudio.load('aud.mp3'); 
      $scope.audio.pause(); 
     } 
    }); 

ответ

1

Вы можете попробовать ниже логики, которая будет отслеживать visibilitychange события и проверить видимости документа.

Код

app.controller("myCtrl", function($scope, ngAudio, $window, $document) { 
    $scope.src = "aud.mp3"; 
    $scope.play = false; 
    $scope.play = function() { 
     $scope.audio = ngAudio.load('aud.mp3'); 
     $scope.audio.play(); 
    }; 
    $scope.stop = function() { 
     $scope.audio = ngAudio.load('aud.mp3'); 
     $scope.audio.pause(); 
    }; 

    $document[0].addEventListener("visibilitychange", function() { 
     var doucmentHidden = document.hidden; 
     $scope.$apply(function() { //need to apply scope from events to run digest cycle 
      if (doucmentHidden) 
       $scope.stop(); 
      else 
       $scope.play(); 
     }); 
    }, false); 
}); 

Working Plunkr

+1

Nice решение. Одно небольшое предложение: изменение имени переменной на 'documentHidden' (или' isHidden' или подобное) может быть менее запутанным, учитывая, что вы устанавливаете его равным 'document.hidden'. – Bryan

+0

Привет, спасибо за ваш ответ, но я получаю сообщение об ошибке после добавления кода, который «$ не определен». Я не включил плагин jquery. мне нужно сделать все в угловом js –

+0

@Vinothkanna это не jquery вообще, вы ввели $ document зависимость от уровня контроллера –