Jwplayer - 错误:jwplayer(...)。setup不是一个函数

时间:2016-10-17 05:22:10

标签: angularjs jwplayer ng-dialog

我必须在弹出窗口中显示jwplayer,对于使用ngDialog(angular)的弹出窗口,ngDialog的代码如下:

$scope.showVideoPlayerPopup = function(video_path)
{
    $scope.ngDialog = ngDialog;
            ngDialog.open({
                animation: true,
                scope:$scope,
                template:'<div id="video_popup"></div>',
                plain: true,
                //className: 'ngdialog-theme-default',
                closeByDocument: true
                //backdrop : 'static'
            });
        playVideo(video_path);
}

上面播放的视频功能包含jwplayer的代码,如下所示:

<script>
    function playVideo(video_path)
    {
        jwplayer("video_popup").setup({
            file: video_path,
            width: "600px",
            height: "600px",
            stretching: "bestfit",
        });
    }

</script>

当我使用相同的jwplayer代码用于没有弹出窗口的简单html代码时,它工作正常,但我尝试将我的html放在弹出窗口中,它给出了以下错误:

  

错误:jwplayer(...)。setup不是函数

更新

我包含的文件:

<script src="https://content.jwplatform.com/libraries/qAkRysIB.js"></script>

2 个答案:

答案 0 :(得分:2)

  1. 确保你包含了jwplayer src(你可能已经做了但是如果没有:)

    <script type="text/javascript" src="http://p.jwpcdn.com/6/10/jwplayer.js"></script>

  2. 在调用setup函数之前,请确保已加载面板。一种方法是从ngDialog注册ngDialog.opened的事件监听器(参见EventsngDialog readme部分):

    $scope.$on('ngDialog.opened', function (e, $dialog) { playVideo(); });

  3. 请参阅jsbin example

答案 1 :(得分:0)

是...因为您的div标签带有id&#34; current_video_path&#34;在jwplayer(...)之前必须在DOM中安装.setup脚本可以工作...可能你可以使用$ timeout或setTimeout添加一些延迟,这样它就有足够的时间在弹出这个脚本之前刷新div。