2010-11-30 4 views
2

Je sais que cela a déjà été demandé, mais pour une raison quelconque, cette stratégie ne semble pas fonctionner pour moi.jquery et changer html 5 source vidéo sur clic

ceci est mon code:

$(document).ready(function() { 
     $('#foo').click(function() { 
     var videoFile = 'video/law_cash.mp4'; 
     $('#video_container video source').attr('src', videoFile); 
     }); 
    }); 

la fonction de clic fonctionne et aussi quand je vérifie dans Firebug la vidéo/law_cash.mp4 apparaît dans la zone de droite. Il veut tout simplement pas de charge lorsque je clique

EDIT: c'est ce que im en train d'essayer de le faire:

$(document).ready(function() { 

    var knicks = 'video/knicks_therapist.m4v'; 
     law = 'video/law_cash.mp4'; 
     fit = 'video/fit_some.mp4'; 
     texas = 'video/texas_familia.mp4'; 
     partner = 'video/drug.m4v'; 
     keyspan = 'video/keyspan_nrg.mov'; 

    $('#law').click(function() { 
     $('#video_container video source').attr('src', law); 
     $('#video_container video source').load(); 
    }); 

    $('#knicks').click(function() { 
     $('#video_container video source').attr('src', knicks); 
     $('#video_container video source').load(); 
    }); 

    $('#fit').click(function() { 
     $('#video_container video source').attr('src', fit); 
     $('#video_container video source').load(); 
    }); 

    $('#texas').click(function() { 
     $('#video_container video source').attr('src', texas); 
     $('#video_container video source').load(); 
    }); 

    $('#partner').click(function() { 
     $('#video_container video source').attr('src', partner); 
     $('#video_container video source').load(); 
    }); 

    $('#keyspan').click(function() { 
     $('#video_container video source').attr('src', keyspan); 
     $('#video_container video source').load(); 
    }); 
}); 

html:

<a id="law" href="#">BLAH</a> 

Répondre

2

Firefox ne prend pas en charge MPEG formats audio/vidéo .. Ne sais pas pourquoi.

EDIT: Si vous avez un événement onerror enregistré alors il mettrait le feu, et l'objet error de l'élément vidéo vous dira MEDIA_ERR_SRC_NOT_SUPPORTED

+1

Je n'utilise pas firefox comme navigateur de test principal. J'ai seulement utilisé firefox pour voir si j'obtiendrais des erreurs, juste inspecteur web incase (safari) ne l'a pas ramassé. – Robert

+1

Eh bien, vous devriez vérifier la valeur de retour 'canPlayType ('video/mpeg')' de l'élément vidéo 'si elle est vide ou' "non" 'alors le problème est avec le navigateur, pas votre code. –

0

utiliser simplement javascript

video.src = 'new/url/video.ogv'; 
video.load(); // Load the new video 
video.play(); // Play it 
+0

Pas une bonne réponse pour plusieurs raisons - l'une étant que AVI est un format de wrapper et les navigateurs dépendent fortement des formats et des codecs, un autre étant qu'il ne résout pas le problème ... –

+0

Désolé pour le format (je l'ai) . Mais l'exemple (autre que l'erreur de format) fonctionne parfaitement dans Firefox et Chromium pour moi. Il passe la vidéo en cours de lecture à la vidéo 'new/url/video.ogv'. – Youarefunny

+0

Notez, cependant, que le code de Robert contient MP4, qui est la cause réelle de son problème;) –

2

Dans l'exemple original, je crois que le extrait de code pour charger la vidéo doit être

$('#video_container video').load(); 

(sans étiquette « source » après étiquette « vidéo »)

+0

Merci, cela me permet de charger une vidéo, mais le thème flowplayer est maintenant cassé – Goot