0

jwplayer をダイアログ内に配置する必要があり、他のダイアログを作成した方法と同じように実行しましたが、「TypeError: jwplayer(...).setup は関数ではありません」というエラーで失敗しました。

これが私のコードです:

function popupVideoPlayDialog(urlToRenderedVideo, thumbnailUrl, cvId) {
// create dialog frame div for dialog
var dialogFrame = document.createElement('div');
dialogFrame.setAttribute('id', 'videoPlayDialog');

// Load Videos
loadVideoByUrlWithSize( "videoPlayDialog", urlToRenderedVideo, thumbnailUrl, 640, 480);

$dialog = $(dialogFrame).dialog({
        width : 640,
        height : 480,
        modal : true,
        show : {
            effect : 'clip',
            duration : 500
        },
        hide : {
            effect : 'clip',
            duration : 500
        },
        title : 'video play',
        buttons: [
            {text: "Cancel", click: function() {$(this).dialog("close")}}
        ]
    });
    return false;

}

function loadVideoByUrlWithSize(elementId, videoUrl, videoThumbnail, width, height) {
jwplayer(elementId).setup({
    file : videoUrl,
    image : videoThumbnail,
    width : width,
    height : height
});
}
4

1 に答える 1

0

申し訳ありませんが、私は自分の間違いに気づきました。

ビデオをロードするために loadVideoByUrlWithSize を呼び出す方法は正しくありません。これは、ダイアログを作成または開く前に行うべきではないためです。

これが私の解決策です。

$dialog = $(dialogFrame).dialog({
        width : 640,
        height : 480,
        modal : true,
        **open: function(){loadVideoByUrlWithSize( "videoPlayDialog", urlToRenderedVideo, thumbnailUrl, 640, 480);},**
        show : {
            effect : 'clip',
            duration : 500
        },
        hide : {
            effect : 'clip',
            duration : 500
        },
        title : 'video play',
        buttons: [
            {text: "Cancel", click: function() {$(this).dialog("close")}}
        ]
    });
    return false;
于 2013-07-23T08:30:13.193 に答える