اذهب إلى المحتوى

السؤال

نشر

لدي قطعة موسيقية تشتغل في موقعي، وأريد إيقافها عند أختفاء نافذة الموقع، ثم إعادة تشغيلها عند فتح النافذة باستعمال Angular Js، وهذا ما توصلت إليه إلى حد الساعة:

 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();
        }
    });

ماهو الخطأ بالضبط؟ هل من اقتراحات؟

Recommended Posts

  • 0
نشر (معدل)

يمكنك التأكد من ظهور أو اختفاء نافذة المتصفح من خلال دالة Javascript التالية:

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);
})

JQuery Trigger Event on Show/Hide of Element

تم التعديل في بواسطة E.Nourddine
  • 0
نشر

إن كنت تقصد اختفاء أو ظهور نافذة المتصفح tقد أجابك @E.Nourddine
أما إن كنت تقصد اختفاء أو ظهور Route 
يمكنك الاستعانة بـالحدث 

$locationChangeStart

اقترح إيقاف الصوت مهما كان عند تغيير Location بالكود الآتي

$rootScope.$on('$locationChangeStart',function(event,newUrl,oldUrl,newState,oldState){
       $scope.audio.pause();
})

للمزيد من التفصيل حول هذا الحدث 

$location

الأحداث

$on

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...