todas reproductor poner las etiquetas embeber como atributos javascript html5 video javascript-events html5-video

javascript - reproductor - video en html



Detecta si se está reproduciendo un elemento de video HTML5 (12)

Acabo de mirar el enlace @tracevipin agregado ( http://www.w3.org/2010/05/video/mediaevents.html ), y vi una propiedad llamada "en pausa".

Lo he probado y funciona muy bien.

Revisé un par de preguntas para saber si se está reproduciendo un elemento HTML5, pero no puedo encontrar la respuesta. Miré la documentación de W3 y tiene un evento llamado "jugar", pero parece que no puedo hacerlo funcionar.

Este es mi código actual:

var stream = document.getElementsByTagName(''video''); function pauseStream() { if (stream.playing) { for (var i = 0; i < stream.length; i++) { stream[i].pause(); $("body > header").addClass("paused_note"); $(".paused_note").text("Stream Paused"); $(''.paused_note'').css("opacity", "1"); } } }


Agregue eventlisteners a su elemento multimedia. Los posibles eventos que se pueden activar son: eventos de medios de audio y video

<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>Html5 media events</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </head> <body > <div id="output"></div> <video id="myVideo" width="320" height="176" controls autoplay> <source src="http://www.w3schools.com/tags/mov_bbb.mp4" type="video/mp4"> <source src="http://www.w3schools.com/tags/mov_bbb.ogg" type="video/ogg"> </video> <script> var media = document.getElementById(''myVideo''); // Playing event var isPlaying = function(e) { $("#output").html("Playing event triggered"); }; // Pause event var onPause = function(e) { $("#output").html("Pause event triggered"); }; // Volume changed event var onVolumechange = function(e) { $("#output").html("Volumechange event triggered"); }; // Seeking event var onSeeking = function(e) { $("#output").html("Seeking event triggered"); }; media.addEventListener("playing", isPlaying, false); media.addEventListener("pause", onPause, false); media.addEventListener("seeking", onSeeking, false); media.addEventListener("volumechange", onVolumechange, false); </script> </body> </html>


Encontré un problema similar en el que no pude agregar detectores de eventos al reproductor hasta que ya había comenzado a reproducirse, por lo que el método de @Diode lamentablemente no funcionaría. Mi solución fue verificar si la propiedad "pausada" del jugador estaba configurada como verdadera o no. Esto funciona porque "pausado" se establece en verdadero incluso antes de que el video empiece a reproducirse y después de que finaliza, no solo cuando un usuario ha hecho clic en "pausa".


Este es mi código: al llamar a la función play() el video se reproduce o hace una pausa y se cambia la imagen del botón.

Al llamar al volume() la función volume() el volumen se activa / desactiva y la imagen del botón también cambia.

function play() { var video = document.getElementById(''slidevideo''); if (video.paused) { video.play() play_img.src = ''img/pause.png''; } else { video.pause() play_img.src = ''img/play.png''; } } function volume() { var video = document.getElementById(''slidevideo''); var img = document.getElementById(''volume_img''); if (video.volume > 0) { video.volume = 0 volume_img.src = ''img/volume_off.png''; } else { video.volume = 1 volume_img.src = ''img/volume_on.png''; } }


Esto es lo que estamos usando en http://www.develop.com/webcasts para evitar que las personas salgan accidentalmente de la página mientras se reproduce o se pausa el video.

$(document).ready(function() { var video = $("video#webcast_video"); if (video.length <= 0) { return; } window.onbeforeunload = function () { var htmlVideo = video[0]; if (htmlVideo.currentTime < 0.01 || htmlVideo.ended) { return null; } return "Leaving this page will stop your video."; }; }


Lo hice de forma muy simple utilizando las propiedades onpause y onplay de la etiqueta de video html. Cree alguna función de javascript para alternar una variable global para que la página conozca el estado del video para otras funciones.

Javascript a continuación:

// onPause function function videoPause() { videoPlaying = 0; } // onPause function function videoPlay() { videoPlaying = 1; }

Etiqueta de video HTML:

<video id="mainVideo" width="660" controls onplay="videoPlay();" onpause="videoPause();" > <source src="video/myvideo.mp4" type="video/mp4"> </video>

de lo que puedes hacer onclick javascript para hacer algo dependiendo de la variable de estado en este caso videoPlaying.

espero que esto ayude...


Me parece que podrías verificar por !stream.paused .


Mi respuesta en ¿Cómo saber si un elemento <video> se está reproduciendo actualmente? :

MediaElement no tiene una propiedad que indique si se está reproduciendo o no. Pero podría definir una propiedad personalizada para él.

Object.defineProperty(HTMLMediaElement.prototype, ''playing'', { get: function(){ return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2); } })

Ahora puede usarlo en elementos de video o audio como este:

if(document.querySelector(''video'').playing){ // Do anything you want to }


un pequeño ejemplo

var audio = new Audio(''https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'') if (audio.paused) { audio.play() } else { audio.pause() }


Nota: esta respuesta se dio en 2011. Consulte la documentación actualizada en video HTML5 antes de continuar.

Si solo desea saber si el video está en pausa, use la stream.paused .

No hay propiedad para el elemento de video para obtener el estado de reproducción. Pero hay un evento "jugando" que se activará cuando comience a jugar. El evento "terminado" se activa cuando deja de reproducirse.

Entonces la solución es

  1. decalre una variable videoStatus
  2. agregar controladores de eventos para diferentes eventos de video
  3. actualizar videoStatus usando los controladores de eventos
  4. usa videoStatus para identificar el estado del video

Esta página te dará una mejor idea sobre los eventos de video. Reproduzca el video en esta página y vea cómo se desencadenan los eventos.
http://www.w3.org/2010/05/video/mediaevents.html


function playPauseThisVideo(this_video_id){ var this_video = document.getElementById(this_video_id); if(this_video.paused){ console.log("VIDEO IS PAUSED"); } else { console.log("VIDEO IS PLAYING"); } }


jQuery(document).on(''click'', ''video'', function(){ if (this.paused) { this.play(); } else { this.pause(); } });