我正在尝试使用javascript创建一个youtube-playback。
我发起了这样的youtubeplayer:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '720',
width: '1280',
html5: 0,
videoId: 'i8IXMGHpGBk',
playerVars: {'modestbranding': 1, 'controls': 1,'showinfo': 0 },
events: {
'onStateChange': function(e) {
if (e.data === 0) {
//skrolla här
}
}
}
});
}
之后,我有一个启动播放器的功能,如下所示:
function playvideo(){ player.playVideo(); }
播放器对象应根据文档使用此方法。
出于某种原因,我收到了错误
TypeError: Object #<S> has no method 'playVideo'
at Object.Video.$scope.play (file://localhost/Users/kristoffer.nolgren/web/blossa2013dev/js/main.js:7:10)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:74:98
at https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:156:140
at Object.e.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:92:272)
at Object.e.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:92:379)
at HTMLDivElement.<anonymous> (https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:156:122)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:24:49
at Array.forEach (native)
at n (https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:6:470)
at HTMLDivElement.c (https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js:24:20)
我认为角度正在干扰youtube api,但我不知道如何。
这是玩家对象的第一级:
Y {b: nb, a: iframe#player, i: div#player, id: 1, d: 2…}
a: iframe#player
b: nb
closure_uid_954797855: 1
d: 3
g: O
h: Object
i: div#player
id: 1
k: Object
o: "player"
s: Array[1]
t: false
答案 0 :(得分:1)
这是因为正在从文件系统file://
而不是http://
访问YouTube API。
答案 1 :(得分:0)
对于有这个问题的其他人:检查您提供的身份
new YT.Player()
实际上存在于文件中。