2016-11-04 28 views
0

Ich kann ein Plakat am Anfang eines Videos mit poster="beginning.jpg" implementieren, aber wie ein anderes Bild am Ende des Videos zu setzen? Beispielbild ist wie ending.jpgPutting verschiedene Poster am Anfang und Ende von html5 Video

<video controls width="100%" poster="beginning.jpg" > 
    <source src="video.mp4" /> 
</video> 

hier ist jsfiddle

+0

Haben Sie die Frage @ guest271314 gelesen? es ist total anders – Elyor

+0

Ich möchte am Ende ein anderes Bild anzeigen – Elyor

+0

Ja. Sie können dieselben Ansätze bei Answers at linked Question verwenden. Haben Sie versucht, das Ereignis 'ended' zu verwenden? Was ist anders an der aktuellen Frage? – guest271314

Antwort

0

Verwenden ended, play Ereignisse, .load()

<video width="100%" controls poster="/image/src/"> 
    <source src="/video/src/" type="video/mp4" /> 
</video> 
<script> 
    var video = document.querySelector("video"); 
    video.onplay = function() { 
    this.setAttribute("poster", "") // remove `poster` image 
    video.onended = function(e) { 
    this.setAttribute("poster", "/new/image/src") // set new `poster` image 
    // call `.load()` 
    this.load(); 
    } 
</script> 

jsfiddle https://jsfiddle.net/ey4tfp30/4/

0

zunächst eine Id zu dem Video hinzufügen.

var video = document.getElementById('video'); 
var posterURL = 'end.jpg'; 

// Preload the end poster when the video starts to play 
video.addEventListener('play', function() { 
    var image = new Image(); 
    image.src = posterURL; 
}); 

// Set and display the end poster 
video.addEventListener('ended', function() { 
    video.poster = posterURL; 
    video.load(); 
}); 
+0

verwendet habe. Das neue Bild muss noch geladen werden, das alte Bild kann noch angezeigt werden, bevor neue Bilder geladen werden, wie in den Kommentaren der verknüpften Frage angegeben was du geteilt hast. – guest271314

+0

Guter Punkt. Vor Ort habe ich die Ladezeit nicht bemerkt. –

Verwandte Themen