Tardare inizio dell'audio

di il
3 risposte

Tardare inizio dell'audio

Salve a tutti!

Sto usando questo js per far partire l'audio di background su una web app:

var player = GetPlayer();
this.Location= player.GetVar("location");
var audio = document.getElementById('bgSong');
audio.src=Location + "back-audio.mp3";
audio.load();
audio.play();

Che voi sappiate c'è un modo per tardare l'inizio della musica?
Credo che bisognerebbe aggiungere un "Timeout(function()" da qualche parte ma non riesco proprio a capire come...

Grazie infinite per il vostro supporto!

3 Risposte

  • Re: Tardare inizio dell'audio

    Xilinx ha scritto:


    Sto usando questo js per far partire l'audio di background su una web app [...]
    Che voi sappiate c'è un modo per tardare l'inizio della musica?
    Direi che basta chiamare setTimeout() nel modo opportuno; ad esempio
    
    setTimeout(function() {
      var player = GetPlayer();
      this.Location= player.GetVar("location");
      var audio = document.getElementById('bgSong');
      audio.src=Location + "back-audio.mp3";
      audio.load();
      audio.play();
    }, 5000);
    
    Chiaramente, modulando il parametro dei millisecondi (5000, nell'esempio), puoi decidere il tempo di attesa prima della riproduzione.

    Ciao!
  • Re: Tardare inizio dell'audio

    Davvero grazie infinite per l'aiuto!!
    L'ho provato ma purtroppo non sembra funzionare.. forse sbaglio qualcosa io..
    Questo script dovrebbe funzionare la musica di background in un corso scorm che sto facendo con Articulate Storyline.

    In pratica alla prima slide parte questo script:
    function add_line() {
    var line = document.createElement("audio");
    var head=document.getElementsByTagName('body')[0];
    line.type = "audio/mp3";
    line.src="";
    line.id="bgSong" ;
    line.autoplay = true;
    line.loop = true;
    head.appendChild(line);
    }

    //but we only want to add these once!
    if(document.getElementById('bgSong')==null){
    add_line();
    var audio = document.getElementById('bgSong');
    audio.volume = 0.3;
    }

    Poi ogni volta che voglio far partire la musica aggancio questo script a un tasto:

    var player = GetPlayer();
    this.Location= player.GetVar("location");
    var audio = document.getElementById('bgSong');
    audio.src=Location + "back-audio.mp3";
    audio.load();
    audio.play();

    ..funziona bene, aggiungendo setTimeout(function() per tardare di qualche secondo l'inizio la musica non parte proprio..
    Non so... Non c'è un altro modo per inserirlo? Oppure andrebbe messo in qualche modo nell'altro script?

    Grazie a tutti!
  • Re: Tardare inizio dell'audio

    Xilinx ha scritto:


    In pratica alla prima slide parte questo script [...]
    E questo script a cosa serve? Perché non l'hai riportato subito?

    Xilinx ha scritto:


    //but we only want to add these once!
    if(document.getElementById('bgSong')==null){
    add_line();
    var audio = document.getElementById('bgSong');
    audio.volume = 0.3;
    }
    Idem come sopra. Inoltre, il codice va riportato come formattato.

    Xilinx ha scritto:


    Poi ogni volta che voglio far partire la musica aggancio questo script a un tasto [...]
    Manca il codice che aggancia la parte di codice al tasto: non l'hai riportato.

    Xilinx ha scritto:


    ..funziona bene, aggiungendo setTimeout(function() per tardare di qualche secondo l'inizio la musica non parte proprio..
    Se non mostri come usi setTimeout(), non si può dire dove sbagli.

    In breve, non è chiaro lo scopo di una parte di codice che hai specificato solo in un secondo momento, mentre hai omesso altre parti e non hai fatto vedere in particolare come usi la funzione di cui lamenti la mancanza di funzionamento. Che si può dire?
Devi accedere o registrarti per scrivere nel forum
3 risposte