Ich habe eine Funktion, die ein Video abspielt, wenn ich auf das im Player angezeigte Posterbild klicke und es scheint zu funktionieren:
var video = document.getElementById('player');
video.addEventListener('click',function(){
video().play();
},false);
Im html5-Video-Tag habe ich etwas wie: id = "player" onclick = "this.play ();"
das Problem ist, wenn ich auf die Videosteuerung Pause drücke, macht es tatsächlich Pause, was gut ist, aber wenn ich jetzt die Wiedergabetaste auf der Videosteuerung drücke, kann ich sehen, dass die Taste für einen Bruchteil einer Sekunde wieder in Pause wechselt, dann geht es wieder ein Play-Button zu sein. Also drücke ich auf play und es wird nur ein paar Frames abgespielt und danach wieder angehalten. Die einzige Möglichkeit, es wieder abzuspielen, ist das Klicken auf den Videoanzeigebereich.
Wie kann ich bewirken, dass die Wiedergabe/Pause-Schaltfläche der Steuerungsleiste nicht mehr angehalten wird, und wie kann ich die Wiedergabe unterbrechen, wenn ich auf den Videoanzeigebereich klicke?
Ich habe folgendes versucht, aber es funktioniert nicht:
var video = document.getElementById('player');
video.addEventListener('click',function(){
if(video.paused){
video().play();
}else{
video.pause();
}
},false);
Der Grund, warum ich das Video abspielen möchte, wenn Sie auf den tatsächlichen Anzeigebereich drücken, ist es zu schwierig, den winzigen Steuerungsschaltflächen-Wiedergabebutton auf Android zu finden, da er so klein ist, dass es für Personen einfacher ist, einfach den Anzeigebereich zu drücken es geht los In Firefox wird der Videoplayer abgespielt, wenn ich auf den Anzeigebereich klicke sowie Pausen, was genau das ist, was ich tun möchte und dies auch ohne Javascript. In Android wird das Video überhaupt nicht abgespielt, wenn ich auf den Anzeigebereich drücke. Daher versuche ich grundsätzlich, den Android-Browser zu zwingen, sich so zu verhalten, wie es Firefox tut.
Irgendwelche Ideen?
$('#play-pause-button').click(function () {
var mediaVideo = $("#media-video").get(0);
if (mediaVideo.paused) {
mediaVideo.play();
} else {
mediaVideo.pause();
}
});
Ich habe dies in jQuery gemacht, was einfach und schnell ist. Um es auszuprobieren, müssen Sie nur die ID des Video-Tags und Ihre Wiedergabe/Pause-Taste verwenden.
EDIT: In Vanilla JavaScript: Ein Video ist keine Funktion, sondern Teil von DOM
video.play();
Anstatt
video().play() **wrong**
Soweit ich sehe, ist Video keine Funktion. Warum haben Sie Klammern? Das ist dein Fehler.
Verwenden Sie also anstelle von video()
einfach video
.
Dies ist die einfachste Lösung
this.on("pause", function () {
$('.vjs-big-play-button').removeClass(
'vjs-hidden'
).css('display', 'block');
this.one("play", function () {
$('.vjs-big-play-button').addClass(
'vjs-hidden'
).css('display', '');
});
});
Diese Art von Arbeiten (mit Jquery) funktioniert für mich in Chrome v22, Firefox v15 und IE10:
$('video').on('click', function (e) {
if (this.get(0).paused) {
this.get(0).play();
}
else {
this.get(0).pause();
}
e.preventDefault();
});
Die Variable preventDefault
hat das Bildsprungproblem gestoppt, das Sie sehen, aber dann werden die anderen Schaltflächen im Steuerungsbereich wie Vollbild usw. abgebrochen.
Es scheint, dass es nicht einfach ist, warum es so ist? Ich hätte gedacht, dass Vender standardmäßig per Klick gespielt hätten, es scheint logisch zu sein. : |
Ich glaube, dies ist der einfachste und einfachste Weg, das zu schreiben, was Sie erreichen wollen:
var myVideo = document.getElementById('exampleVideo');
$(myVideo).click(function toggleVideoState() {
if (myVideo.paused) {
myVideo.play();
console.log('Video Playing');
} else {
myVideo.pause();
console.log('Video Paused');
}
});
Die Anmeldung an der Konsole dient natürlich nur der Veranschaulichung.
$('#video-id').click(function() {
// jQuery sets this as the DOM element that triggered the event
// no need to wrap it in jQuery $(this) and unwrap it again $(this).get(0)
if (this.paused) {
this.play();
} else {
this.pause();
}
});
function myFunction(){
var playVideo = document.getElementById('myVideo');
var button = document.getElementById('myBtn');
if (playVideo.paused) {
playVideo.play();
button.innerHTML= "pause";
} else {
button.innerHTML= "play";
playVideo.pause();
}
};