Ik probeer HTML5-video’s te beheren met JQuery. Ik heb twee clips in een interface met tabbladen, er zijn in totaal zes tabbladen, de andere hebben alleen afbeeldingen. Ik probeer de videoclips af te spelen wanneer op hun tabblad wordt geklikt en vervolgens te stoppen wanneer op een van de andere wordt geklikt.
Dit moet eenvoudig zijn om te doen, maar ik krijg het niet werkend, de code die ik gebruik om de video af te spelen is:
$('#playMovie1').click(function(){
$('#movie1').play();
});
Ik heb gelezen dat het video-element in een functie moet worden weergegeven om het te kunnen bedienen, maar kan geen voorbeeld vinden. Ik kan het laten werken met JS:
document.getElementById('movie1').play();
Enig advies zou geweldig zijn. Bedankt
Antwoord 1, autoriteit 100%
Uw oplossing toont het probleem hier — play
is geen jQuery-functie maar een functie van het DOM-element. Je moet het daarom het DOM-element aanroepen. Je geeft een voorbeeld van hoe je dit kunt doen met de native DOM-functies. Het jQuery-equivalent — als u dit wilt doen om in een bestaande jQuery-selectie te passen — zou $('#videoId').get(0).play()
zijn. (get
haalt het native DOM-element uit de jQuery-selectie.)
Antwoord 2, autoriteit 21%
U kunt doen
$('video').trigger('play');
$('video').trigger('pause');
Antwoord 3, autoriteit 15%
Zo heb ik het voor elkaar gekregen:
jQuery( document ).ready(function($) {
$('.myHTMLvideo').click(function() {
this.paused ? this.play() : this.pause();
});
});
Al mijn HTML5-tags hebben de klasse ‘myHTMLvideo’
Antwoord 4, autoriteit 6%
Waarom moet je jQuery gebruiken? Uw voorgestelde oplossing werkt en is waarschijnlijk sneller dan het maken van een jQuery-object.
document.getElementById('videoId').play();
Antwoord 5, autoriteit 6%
Voor het pauzeren van meerdere video’s heb ik ontdekt dat dit goed werkt:
$("video").each(function(){
$(this).get(0).pause();
});
Dit kan in een klikfunctie worden gezet, wat best handig is.
Antwoord 6, autoriteit 4%
Als uitbreiding van het antwoord van lonesomeday kun je ook
$('#playMovie1').click(function(){
$('#movie1')[0].play();
});
Merk op dat er geen get() of eq() jQuery-functie wordt aangeroepen. De array van DOM die wordt gebruikt om de functie play() aan te roepen. Het is een snelkoppeling om in gedachten te houden.
Antwoord 7, autoriteit 3%
Ik vind deze leuk:
$('video').click(function(){
this[this.paused ? 'play' : 'pause']();
});
Hopelijk helpt het.
Antwoord 8
Ik gebruik FancyBox en jQuery om een video in te sluiten. Geef het een ID.
Misschien is het niet de BESTE oplossing om afspelen/pauzeren op een andere manier in te schakelen, maar voor mij is het gemakkelijk en HET WERKT! 🙂
In de
`
<input type="hidden" id="current_video_playing">
<input type="hidden" id="current_video_status" value="playing">
<video id="video-1523" autobuffer="false" src="movie.mp4"></video>
<script>
// Play Pause with spacebar
$(document).keypress(function(e) {
theVideo = document.getElementById('current_video_playing').value
if (e.which == 32) {
if (document.getElementById('current_video_status').value == 'playing') {
document.getElementById(theVideo).pause();
document.getElementById('current_video_status').value = 'paused'
} else {
document.getElementById('current_video_status').value = 'playing'
document.getElementById(theVideo).play();
}
}
});
</script>`
Antwoord 9
Dit is de eenvoudige methoden die we kunnen gebruiken
op jQuery-knop Klik op Functie
$("#button").click(function(event){
$('video').trigger('play');
$('video').trigger('pause');
}
bedankt
Antwoord 10
door jQuery met selectors
$("video_selector").trigger('play');
$("video_selector").trigger('pause');
$("div.video:first").trigger('play');$("div.video:first").trigger('pause');
$("#video_ID").trigger('play');$("#video_ID").trigger('pause');
door javascript met behulp van ID
video_ID.play(); video_ID.pause();
of
document.getElementById('video_ID').play(); document.getElementById('video_ID').pause();
Antwoord 11
Net als een notitie, zorg ervoor dat u controleert of de browser de videofunctie ondersteunt voordat u het probeert aan te roepen:
if($('#movie1')[0].play)
$('#movie1')[0].play();
die JavaScript-fouten voor browsers voorkomen die het videotag niet ondersteunen.
Antwoord 12
var vid = document.getElementById("myVideo");
function playVid() {
vid.play();
}
function pauseVid() {
vid.pause();
}
<video id="myVideo" width="320" height="176">
<source src="https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/mp4">
<source src="https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.ogg" type="video/ogg">
Your browser does not support HTML5 video.
</video>
<button onclick="playVid()" type="button">Play Video</button>
<button onclick="pauseVid()" type="button">Pause Video</button><br>
Antwoord 13
Vond het antwoord hier @toolmakersteve, maar moest op deze manier afstemmen:
Om alles te pauzeren
$('video').each(function(index){
$(this).get(0).pause();
});
of om alles te spelen
$('video').each(function(index){
$(this).get(0).play();
});
Antwoord 14
Gebruik dit ..
$('#video1').attr({'autoplay':'true'});
Antwoord 15
Ik heb het ook gedaan als volgt:
$(window).scroll(function() {
if($(window).scrollTop() > 0)
document.querySelector('#video').pause();
else
document.querySelector('#video').play();
});
Antwoord 16
@loneSomeday heeft het prachtig uitgelegd, hier een oplossing die je misschien ook een goed idee geeft hoe je de afspeel-/pauzefunctie kunt bereiken
video afspelen/pauzeren bij klik
Antwoord 17
<video style="min-width: 100%; min-height: 100%; " id="vid" width="auto" height="auto" controls autoplay="true" loop="loop" preload="auto" muted="muted">
<source src="video/sample.mp4" type="video/mp4">
<source src="video/sample.ogg" type="video/ogg">
</video>
<script>
$(document).ready(function(){
document.getElementById('vid').play(); });
</script>
Antwoord 18
enter code here
<form class="md-form" action="#">
<div class="file-field">
<div class="btn btn-primary btn-sm float-left">
<span>Choose files</span>
<input type="file" multiple>
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text" placeholder="Upload one or more files">
</div>
</div>
</form>
<video width="320" height="240" id="keerthan"></video>
<button onclick="playVid()" type="button">Play Video</button>
<button onclick="pauseVid()" type="button">Pause Video</button>
<script>
(function localFileVideoPlayer() {
var playSelectedFile = function (event) {
var file = this.files[0]
var type = file.type
var videoNode = document.querySelector('video')
var fileURL = URL.createObjectURL(file)
videoNode.src = fileURL
}
var inputNode = document.querySelector('input')
inputNode.addEventListener('change', playSelectedFile, false)
})()
function playVid() {
keerthan.play();
}
function pauseVid() {
keerthan.pause();
}
</script>