如何从 JSON 对象获取 Youtube vid ID
How to get the Youtube vid ID from a JSON object
我想从我的JSON文件中获取youtube视频ID。将使用正则表达式函数提取 id。当我传入id
作为youtube函数的参数时onYouTubeIframeAPIReady
会收到一个错误:Uncaught TypeError: YT.Player is not a function
。
我的正则表达式函数:
regexVideoId: function(url) {
var regExp = /^.*((youtu.be'/)|(v'/)|('/u'/'w'/)|(embed'/)|(watch'?))'??v?=?([^#'&'?]*).*/;
var match = url.match(regExp);
console.log(match[7]);
onYouTubeIframeAPIReady(match[7]);
// return (match&&match[7].length==11)? match[7] : false;
},
优酷功能:
var player;
function onYouTubeIframeAPIReady(id) {
player = new YT.Player('youtube-video', {
height: '390',
width: '640',
videoId: id,
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
调用正则表达式函数并发送 youtube 网址:regexVideoId(data.youtube);
我使用Youtube Javascript API。正则表达式函数有效,它将从其 id 中提取视频。只有将video id
传递给函数onYoutubeIframeAPIReady
不起作用,并给我is not a function
的错误。
我做错了什么?提前谢谢。
您没有提供足够的代码,因此这是一些猜测工作。
但是,问题似乎在于您直接调用onYouTubeIframeAPIReady
,可能是在youtube API完全加载之前。(Youtube API 文档中提供的示例使用异步加载(
您可以通过反转逻辑来解决此问题。您不是在函数中显式调用onYouTubeIframeAPIReady
regexVideoId
而是让构造函数调用YT.Player
regexVideoId
函数:
function regexVideoId(url) {
var regExp = /^.*((youtu.be'/)|(v'/)|('/u'/'w'/)|(embed'/)|(watch'?))'??v?=?([^#'&'?]*).*/;
var match = url.match(regExp);
return match[7];
}
//...
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('youtube-video', {
height: '390',
width: '640',
videoId: videoId: regexVideoId(theUrl),
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
检查这个工作小提琴
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- html5视频中的Youtube类型注释
- 链接和youtube的Javascript和regex
- YouTube作为弹出窗口在桌面版本上播放,但不在移动设备上播放
- 使用javascript将视频从我的android应用程序上传到youtube
- internet explorer 8兼容模式下的Youtube api错误
- 如何用低音量自动启动Youtube视频(iframe)
- 可以't从Youtube IFrame更改焦点
- 使用HTML5播放器时使用Javascript更改Youtube视频
- 可以't根据设备自动调整youtube播放器的大小
- Youtube JavaScript API不是't正在初始化
- 有没有办法在dailymotion播放器的新测试版中播放youtube视频
- 在Android Kitkat上模拟鼠标点击Youtube视频
- HtmlUnit无法在youtube上完全加载页面
- 我们如何在dailymotion播放器的新测试版中播放youtube视频
- Lightbox关闭时停止播放Youtube视频
- 未为youtube执行Firefox Addon Pagemod
- Javascript play() youtube vid 在 Firefox 中不起作用
- 如何从 JSON 对象获取 Youtube vid ID