2017-08-22 5 views
0

Q.1. J'essaye d'écrire un code dans Joomla en utilisant un éditeur de JCE où j'ai un fichier audio que j'essaye de jouer sur le bowser. Voici le code du script Java que j'ai écrit;Problème de l'instruction conditionnelle du script Java

<script type="text/javascript"> 
       var audio, playbtn; 

       function initAudioPlayer() { 
        audio = new Audio(); 
        audio.src = "/images/audios/how-to-meditate/relaxation/relaxation-in-the-forest.mp3"; 
        audio.loop = false; 
        audio.pause(); 
        //set object references 
        playbtn = document.getElementById("playpausebtn"); 
        //Add Event Handling 
        playbtn.addEventListener("click", playPause); 
        //Funtions 
        function playPause() { 
         if (audio.pause) { 
          audio.play(); 
          playbtn.style.background = "url(images/icons/pause.JPG)"; 
         } else { 
          audio.pause(); 
          playbtn.style.background = "url(images/icons/play.JPG) no-repeat"; 
         } 
        } 
       } 
       window.addEventListener("load", initAudioPlayer); 
      </script> 

Voici le code CSS;

<style scoped="scoped" type="text/css"> 
    button#playpausebtn { 
     background: url(images/icons/play.JPG) no-repeat; 
     border: none; 
     width: 40px; 
     height: 40px; 
     cursor: pointer; 
     outline: none; 
    } 

et le code du bouton pour le code HTML;

<button id="playpausebtn"></button> 

Dans ce cas, lors de l'exécution lorsque je clique sur le bouton de lecture des pièces audio, mais quand je clique sur le bouton deuxième fois pour arrêter l'audio, il ne s'arrête pas où que rien ne se passe et l'audio continue de jouer même si je ont inclus l'instruction else qui spécifie si la fonction audio.pause n'est pas vraie, c'est-à-dire si l'audio est en cours de lecture puis cliquez sur l'audio devrait s'arrêter et le bouton de lecture devrait être affiché mais rien ne se passe. J'ai essayé d'inverser le code où écrire le code ci-dessous;

function playPause() { 
          if (audio.play) { 
           audio.pause(); 
           playbtn.style.background = "url(images/icons/play.JPG) no-repeat"; 
          } else { 
           audio.play(); 
           playbtn.style.background = "url(images/icons/pause.JPG)"; 
          } 
         } 

Alors dans ce cas que lorsque l'audio est lue et si je clique sur le bouton de pause, il fonctionne et quand j'essaie de jouer le son, il ne joue pas. Donc, dans les deux cas, j'ai observé que le code à l'intérieur d'autre ne s'exécute pas et je ne pouvais pas comprendre pourquoi cela se produit.

J'utilise Joomla 3.7.5 et le script est autorisé dans l'éditeur JCE

Veuillez aviser la raison du problème.

Q.2. Aussi, enfin, je veux savoir comment écrire un code pour afficher le bouton de lecture une fois que l'audio est complètement fini de jouer?

+1

Si 'audio.pause' est une fonction, il sera toujours truthy. Je doute que vous pouvez l'utiliser pour vérifier si elle est en pause. – Carcigenicate

+0

utilise une variable et change sa valeur dans tous les états – Roljhon

Répondre

1

Il vous manque un "d". audio.paused est utilisé pour vérifier si un audio est en pause. audio.pause est une fonction qui met l'audio en pause.

Changer votre condition:

if (audio.paused) { 

Further reading