引子
今天做了弹框显示优酷视频的案例,有点有问题,但是通过其他办法解决了。自己感觉,虽然解决了,但是还是不是很好!不知道大家有没有更好的解决办法!
背景
弹框显示优酷视频,且一个页面中有很多优酷视频,做到效果如下图:
难点
div弹出层是在一个页面当中的,点击关闭,让优酷视频重新载入。(控制优酷视频的播放和暂停,定位指定时间和播放当前时间,优酷当中已经给了API函数,但是重新载入视频没有)
解决方法
js制作弹出层,相信大家应该都会做,今天就不总结js弹出层的效果了,关于js弹出层,后面有时间再讲!
首先,优酷API开发平台的地址: http://open.youku.com/
激活一下邮箱,进入工具,会生成一个client_id,vid是视频的id,通过浏览器地址或者分享里面可以复制到。
调用视频的代码如下:
<div id="youkuplayer" style="width:480px;height:400px"></div>
<script type="text/javascript" src="http://player.youku.com/jsapi">
player = new YKU.Player('youkuplayer',{
styleid: '0',
client_id: '7ea1dcdd8ea5d799',
vid: '替换成优酷视频ID',
autoplay: true,
show_related: true,
events:{
onPlayEnd: function(){ /*your code*/ },
onPlayStart: function(){ /*your code*/ },
onPlayerReady: function(){ /*your code*/ }
}
});
function playVideo(){
player.playVideo();
}
function pauseVideo(){
player.pauseVideo();
}
function seekTo(s){
player.seekTo(s);
}
function currentTime(){
return player.currentTime();
}
</script>
这里就不一一对代码进行解释了,详细大家应该都能看懂,或者去优酷视频API上面有解释。
我在这里要解释的是,优酷里面的script的引用方式比较特别,是这样的
<script type="text/javascript" src="http://player.youku.com/jsapi">
然后再在script中写入代码,那换成我们平时用的方式可以吗?通过验证也是可以的。
<div id="youkuplayer" style="width:480px;height:400px"></div>
<script type="text/javascript" src="http://player.youku.com/jsapi"> </script>
<script type="text/javascript">
player = new YKU.Player('youkuplayer',{
styleid: '0',
client_id: '7ea1dcdd8ea5d799',
vid: '替换成优酷视频ID',
autoplay: true,
show_related: true,
events:{
onPlayEnd: function(){ /*your code*/ },
onPlayStart: function(){ /*your code*/ },
onPlayerReady: function(){ /*your code*/ }
}
});
function playVideo(){
player.playVideo();
}
function pauseVideo(){
player.pauseVideo();
}
function seekTo(s){
player.seekTo(s);
}
function currentTime(){
return player.currentTime();
}
</script>
这样大家应该都明白了吧。
对于优酷视频重新载入,好在谷歌浏览器,火狐等等,在div设置属性display none之后,会自动重新载入,比较方便,但是在IE浏览器中就不一样了。
IE浏览器的问题
1、要在div中加上 < html>