2015-05-02 32 views
5

Il mio codice è molto semplice:angolare - cattura lo scorso <video> fotogramma come poster video/pollice

<video ng-controller="Ctrl" ng-src="scopeSRC" autoplay></video> 

.controller('Ctrl', function ($scope, $timeout) { 

    $scope.scopeSRC = 'a_src_url'; 

    $timeout(function() { 
    $scope.scopeSRC = 'new_src_url'; 
    }, 5000); 
}); 

Ora, quando si cambia lo src vedo video nero. Quello che mi piacerebbe fare è impostare l'ultimo fotogramma del precedente video src come anteprima mentre il nuovo src sta caricando.

Come pensi di poter ottenere questo?

Grazie, qualsiasi aiuto apprezzato

+0

hai provato a utilizzare la funzione 'onload' usando direttiva? –

+0

@pankajparkar interessante .. come intendi per favore? – sbaaaang

+0

crea una direttiva, che avrà 'elment.on ('load', function() { // qui il codice dell'icona del pollice nascosta })' & 'elment.on ('unload', function() { // qui il codice di mostrare l'icona del pollice }) 'Non sono sicuro che funzionerà o no, ma si potrebbe provare questo –

risposta

1

Invece di avere 1 elemento video e cambiando lo src, utilizzare 2 elementi video che sono stratificati uno sopra l'altro utilizzando z-index.

Quando si desidera commutare, mettere in pausa l'elemento video corrente, attendere il caricamento del secondo elemento video (ascoltare gli eventi loadeddata/canplay/canplaythrough). Quindi scambia gli z-index in modo che il prossimo elemento video sia in primo piano e poi riproduci il secondo elemento video.

+0

questa è una buona soluzione, ma a volte i video a più livelli producono uno schermo lampeggiante, ma capisco che non c'è molto che io possa fare, grazie :) – sbaaaang