Domanda

Sto utilizzando il video player Flash Flowplayer di riprodurre video MP4 all'interno di un AnythingSlider . Ho bisogno di rilevare quando l'utente ha cliccato il pulsante di avvio sul video in modo da interrompere la presentazione e consentire all'utente di visualizzare il video. Ho provato con questo codice solo per ottenere una finestra di avviso, ma non fa nulla (il codice si trova alla fine della pagina, prima del tag di chiusura </body>):

<script type="text/javascript">
    $f("player","global/js/flowplayer/flowplayer-3.1.5.swf",{
        onStart: function(clip) {
            alert('player started');                
        }
    });
</script>

Il Flowplayer è implementata come parte del libreria html5media, che rileva automaticamente se il Browser in grado di gestire il tag <video>; in caso contrario, esso sostituisce il tag di ancoraggio di seguito con la Flowplayer:

<video id="vid" width="372" height="209" 
     poster="global/vid/bbq-poster.jpg" controls preload>
    <source id="videoSource" src="global/vid/BBQ_Festival.mp4" 
        type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' 
        onerror="fallback(this.parentNode)" ></source>
    <a  
         href="global/vid/BBQ_Festival.mp4"  
         style="display:block;width:372px;height:209px; padding-left:5px; "  
         id="player"> 
    </a> 
</video>

Quindi, la chiamata di funzione $ f () è in un blocco JavaScript alla fine della pagina, per dare al giocatore la possibilità di caricare in modo corretto. Che cosa sto facendo di sbagliato? Grazie.

UPDATE: Ecco il codice HTML generato, come mostrato da Firebug; provato a utilizzare il "vid" ID per il giocatore e ancora senza fortuna.

<object width="100%" height="100%" type="application/x-shockwave-flash" 
  data="http://html5media.googlecode.com/svn/trunk/src/flowplayer.swf" 
  id="vid_api">
  <param value="true" name="allowfullscreen">
  <param value="opaque" name="wmode">
  <param value="always" name="allowscriptaccess">
  <param value="high" name="quality">
  <param value="false" name="cachebusting">
  <param value="#000000" name="bgcolor">
  <param value="config={"play":null,"playlist":[{"url":"http://localhost/cms/global/vid/poster.jpg", 
   "scaling":"fit","fadeInSpeed":0,"fadeOutSpeed":0},
    {"url":"http://localhost/cms/global/vid/BBQ_Festival.mp4", 
    "autoPlay":false,"autoBuffering":true,"scaling":"fit",
    "fadeInSpeed":0,"fadeOutSpeed":0}],
    "clip":{"scaling":"fit","fadeInSpeed":0,"fadeOutSpeed":0},
    "plugins":{"controls":{"url":"http://html5media.googlecode.com/svn/trunk/src/flowplayer.controls.swf",
    "fullscreen":false,"autoHide":"always"}},
    "playerId":"vid"}" name="flashvars"></object>
È stato utile?

Soluzione

Hai provato:

$f("player", "global/js/flowplayer/flowplayer-3.1.5.swf", { 
  clip: {
    onStart: function(clip) {
      alert('poop');
    }
  }
}); 

Altri suggerimenti

Invece di onStart, utilizzare onBufferFull. Stavo usando onStart e, talvolta, il video è stato ancora buffering e onStart avevo già innescato. Utilizzando onBufferFull, ora che il video ha tamponato un minimo e che ha effettivamente iniziato a giocare sullo schermo. Se avete bisogno di un evento deve essere attivato solo quando il video ha iniziato, assicurarsi di salvare in una bandiera che "tamponato per il tempo 1st andato". onBufferFull è chiamato a pezzi ogni volta che il video è tamponato un minimo (credo che la documentazione dice 3 secondi) per essere giocato. Spero che questo aiuti.

scroll top