it-swarm-pt.tech

Como você muda o vídeo src usando jQuery?

Como você muda o src de uma tag de vídeo HTML5 usando jQuery?

Eu tenho esse HTML:

<div id="divVideo">
  <video controls>
    <source src="test1.mp4" type="video/mp4" />
  </video>
</div>

Isso não funciona:

var videoFile = 'test2.mp4';
$('#divVideo video source').attr('src', videoFile);

Ele altera o src se eu o inspecionar usando o firebug, mas na verdade não altera o vídeo que está sendo reproduzido.

Eu li sobre .pause () e .load (), mas não sei como usá-los.

56
Aximili

Tente $("#divVideo video")[0].load(); depois de alterar o atributo src.

105
Šime Vidas

Eu prefiro fazer isso assim

<video  id="v1" width="320" height="240" controls="controls">

</video>

e depois usar 

$("#v1").html('<source src="test1.mp4" type="video/mp4"></source>' );
15
smaj08r

Eu tentei usar a tag autoplay, e .load () .play () ainda precisa ser chamado pelo menos em chrome (talvez seja minhas configurações).

a maneira mais simples cross-browser para fazer isso com jquery usando o seu exemplo seria

var $video = $('#divVideo video'),
videoSrc = $('source', $video).attr('src', videoFile);
$video[0].load();
$video[0].play();

No entanto, a maneira que eu sugiro que você faça (por legibilidade e simplicidade) é

var video = $('#divVideo video')[0];
video.src = videoFile;
video.load();
video.play();

Leitura adicional http://msdn.Microsoft.com/en-us/library/ie/hh924823(v=vs.85).aspx#ManagingPlaybackInJavascript

Informações adicionais: .load () só funciona se houver um elemento de origem html dentro do elemento de vídeo (por exemplo, <source src="demo.mp4" type="video/mp4" />)

O caminho não jquery seria:

HTML

<div id="divVideo">
  <video id="videoID" controls>
    <source src="test1.mp4" type="video/mp4" />
  </video>
</div>

JS

var video = document.getelementbyid('videoID');
video.src = videoFile;
video.load();
video.play();
8
vipero07
     $(document).ready(function () {     
    setTimeout(function () {
                    $(".imgthumbnew").click(function () {
                        $("#divVideo video").attr({
                            "src": $(this).data("item"),
                            "autoplay": "autoplay",        
                        })
                    })
                }, 2000); 
            }
        });

here ".imgthumbnew" is the class of images which are thumbs of videos, an extra attribute is given to them which have video url. u can change according to your convenient.
i would suggest you to give an ID to ur Video tag it would be easy to handle.
1
sheelpriy

JQUERY

<script type="text/javascript">
$(document).ready(function() {
  var videoID = 'videoclip';
  var sourceID = 'mp4video';
  var newmp4 = 'media/video2.mp4';
  var newposter = 'media/video-poster2.jpg';
 
  $('#videolink1').click(function(event) {
    $('#'+videoID).get(0).pause();
    $('#'+sourceID).attr('src', newmp4);
    $('#'+videoID).get(0).load();
     //$('#'+videoID).attr('poster', newposter); //Change video poster
    $('#'+videoID).get(0).play();
  });
});

0
RodrigoKulb

O que funcionou para mim foi emitir o comando 'play' depois de alterar a fonte. Estranhamente, você não pode usar 'play ()' através de uma instância jQuery para usar apenas getElementByID da seguinte forma:

HTML

<video id="videoplayer" width="480" height="360"></video>

JAVASCRIPT

$("#videoplayer").html('<source src="'+strSRC+'" type="'+strTYPE+'"></source>' );
document.getElementById("videoplayer").play();
0
Kokodoko

A maneira mais fácil é usar a reprodução automática.

<video autoplay></video>

Quando você muda src através de javascript você não precisa mencionar load ().

0
Hasanavi