1

我想处理 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)

在 youtube 限制国家的情况下,我什至无法在控制台中看到它。

无论如何,视频只是显示加载动画,这让用户相信它可以随时加载,这是不正确的。

 <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 尝试使用 jwplayer.js 和直接来自 SWFObject 的 createPlayer ...该视频存在只是它不应该在德国显示,仍在尝试加载它。如果我设置任何其他不存在的 URL,让我们说“ http://www.youtube.com/watch?v=ABC ”仍然会继续尝试加载不存在的视频。

4

1 回答 1

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>
于 2013-07-19T15:22:56.723 回答