(function () { 'use strict'; angular.module('shared') .component('audioPlayer', { templateUrl: '/shared/js/angular/util/audio-player.html', controller: 'AudioPlayerController', bindings: { src: '<', text: '<' } }) .controller('AudioPlayerController', ['mediaPlayerRegistration', '$scope', function (mediaPlayerRegistration, $scope) { var ctrl = this; ctrl.$onInit = function () { ctrl.isSoundPlaying = false; ctrl.audio = new Audio(ctrl.src); }; ctrl.playPauseAudio = function () { if (ctrl.audio.paused) { mediaPlayerRegistration.playAudio(ctrl); } else { ctrl.pauseAudio(); } ctrl.audio.addEventListener("ended", function () { ctrl.isSoundPlaying = false; $scope.$apply(); }); }; ctrl.pauseAudio = function () { ctrl.audio.pause(); ctrl.isSoundPlaying = false; }; ctrl.$onChanges = function () { ctrl.audio = new Audio(ctrl.src); }; ctrl.$onDestroy = function () { ctrl.isSoundPlaying = false; if (ctrl.audio) { ctrl.pauseAudio(); } } }]); })();