Youtube上传小工具onApiReady未触发

时间:2013-03-11 18:42:32

标签: javascript jquery youtube youtube-api

我正在尝试利用Youtube上传小工具从网站上传视频。我有以下javascript:

function onYouTubeIframeAPIReady() {
    widget = new YT.UploadWidget('widget', {
        events: {
            onApiReady: function (event) {
                event.target.setVideoTitle($("#title"));
                event.target.setVideoDescription($("#description"));
                event.target.setVideoPrivacy($("#privacy"));
            },
            onProcessingComplete: function(event) {
                document.getElementById('processing').style.display = "none";
                clearTimeout(timeout);
                player = new YT.Player('player', {
                    height: 390,
                    width: 640,
                    videoId: event.data.videoId,
                    modestbranding: 1,
                    rel: 0,
                    events: {}
                });

                $("#updates").slideUp('slow', function() { });
            },
            onUploadSuccess: function(event) {
                alert('Video ID ' + event.data.videoId + ' was uploaded and is currently being processed.');
                widgetVideoId = videoId = event.data.videoId;
                timeout = setTimeout(showProcessing, 1);
            }
        }
    });
}

视频上传得很好但onApiReady的功能永远不会触发。我不确定我错过了什么,因为它看起来很完整。希望有人可以提供我错过的想法。它在IE9,FF,Chrome或Safari中不起作用。我希望能够在上传视频时更新视频的元数据。

2 个答案:

答案 0 :(得分:0)

event.target.setVideoTitle($("#title"));
event.target.setVideoDescription($("#description"));
event.target.setVideoPrivacy($("#privacy"));

所有这些方法都需要一个字符串参数,而您传递的是jQuery对象。 我相信你的意思是使用.val()

答案 1 :(得分:0)

好的,我明白了。您似乎必须使用<div id="widget"></div>格式的窗口小部件控制器而不是iframe方法才能触发onApiReady。

感谢你的帮助Brad。