JWPlayer处理youtube错误

时间:2013-06-06 11:18:51

标签: javascript youtube jwplayer

我想处理JWPlayer中的youtube错误,所以万一视频不存在或者国家/地区无法在播放器上显示消息,或者使用javascript,我正在做类似这样的事情。

var options = {                             
                    height: 330,
                    },
                    flashplayer: '/player.swf',
                    width: 560,
                    events:{
                        onError:function(obj){
                            alert('ERROR'+obj);
                        }
                    }            ,
                        debug: 'console'
                };


 jwplayer("player").setup(options);
 jwplayer("player").play();          

但它没有进入onError事件,即使视频甚至不存在......我可以在控制台中看到.. LOG(加载预览图像时出错:错误#2036)

对于youtubes限制国家,我甚至无法在控制台中看到它。

在任何情况下,视频只显示加载动画,它让用户相信它可以在任何时间加载,这不是真的。

 <html xmlns="http://www.w3.org/1999/xhtml"  
  xmlns:ui="http://java.sun.com/jsf/facelets">

        <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/assets/jwplayer.min.js"></script>
        <script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/assets/swfobject.js"></script>

            

            <div id="player"></div>

            </body>
        <script type="text/javascript">  
            //<![CDATA[  

            window.onload=createPlayer();

            function createPlayer() {
                var flashvars = {
                    file:"http://www.youtube.com/watch?v=pnEHsUWFuNM", 
                    autostart:"true"
                }
                var params = {
                    allowfullscreen:"true", 
                    allowscriptaccess:"always"
                }
                var attributes = {
                    id:"player1",  
                    name:"player1"
                }
                swfobject.embedSWF("#{facesContext.externalContext.requestContextPath}/assets/player.swf", "player", "320", "196", "9.0.115", false, flashvars, params, attributes);
            }   
            function loadPlayer() {
                var options = { 
                    height: 325,
                    flashplayer: '#{facesContext.externalContext.requestContextPath}/assets/player.swf',
                    width: 560,
                    events:{
                        onError:function(error){
                            alert('Error loading your link, please try another one');
                        }
                    }       /*     ,
                            debug: 'console'*/
                };
                options.file = 'http://www.youtube.com/watch?v=pnEHsUWFuNM';                    
                options.events.onReady= function(){      

                    jwplayer("player").play();

                };

                jwplayer("player").setup(options);
            }
            //]]>
        </script>                

loadPlayer直接从SWFObject尝试使用jwplayer.js和createPlayer ...该视频只是在德国不显示,仍在尝试加载它。 如果我设置任何其他未显示的网址,请说“http://www.youtube.com/watch?v=ABC”仍然会继续尝试加载未显示的视频。

1 个答案:

答案 0 :(得分:0)

看起来JW5不支持捕捉YouTube错误。但是,JW6的以下设置有效:

<!DOCTYPE html>
<html>
<head>
<title>YouTube Test Page</title>
<script type="text/javascript" src="http://www.longtailvideo.com/jwplayer/jwplayer.js"></script>
</head>
<body>
<div id="player"></div>
<script type="text/javascript">
    jwplayer("player").setup({
      file: "https://www.youtube.com/watch?v=ABCD",
      events:{
            onError: function() {
                jwplayer().load({file: "http://content.longtailvideo.com/videos/flvplayer.flv",duration: "27"});jwplayer().play()
                }
            }
      });
</script>
</body>
</html>