这是我的HTML代码的一部分(标有django-template语言变量的视频网址):
<div class="mainPlayer">
<object width="580" height="326">
<param name="movie" value="{{main_video.video_url}}"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="{{main_video.video_url}}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="326"></embed>
</object>
</div>
Run Code Online (Sandbox Code Playgroud)
和JS代码(使用jQuery 1.4.x)
$(document).ready(function(){ .....
$(".activeMovie img").live("click", function(){
video_url = ($(this).parent().find('input').val());
$('.mainPlayer').find('param:eq(0)').val(video_url);
$('.mainPlayer').find('embed').attr('src', video_url);
})
...
})
Run Code Online (Sandbox Code Playgroud)
这样的算法在ff 3.6.3中运行良好,但在chrome4或opera 10.x.中没有运气,src
并且value
被更改,但是youtube播放器仍然显示旧视频.
我不会使用直接的YouTube代码,而是使用swfobject进行跨平台的Flash嵌入.因此,如果您在此代码中有视频:
<div id='myvideo'></div>
Run Code Online (Sandbox Code Playgroud)
要嵌入YouTube视频,请执行以下操作:
swfobject.embedSWF(<>,"myvideo","580","326","9.0.0");
要更改视频,请在javascript中执行此操作:
swfobject.removeSWF("myvideo");
swfobject.embedSWF(<<new video url>>, "myvideo", "580", "326", "9.0.0");
Run Code Online (Sandbox Code Playgroud)
swfobject(托管在谷歌代码上)负责处理所有跨平台闪存嵌入问题.
或者,您也可以使用YouTube JavaScript API动态更改视频.