我想编写一个从 youtube 视频返回信息的 javascript 函数;更具体地说,我想在 json 对象中获取通过搜索获得的视频的 ID 和长度。因此,我查看了 youtube API,并提出了以下解决方案:
function getYoutubeDurationMap( query ){
var youtubeSearchReq = "https://gdata.youtube.com/feeds/api/videos?q="+ query +
"&max-results=20&duration=long&category=film&alt=json&v=2";
var youtubeMap = [];
$.getJSON(youtubeSearchReq, function(youtubeResult){
var youtubeVideoDetailReq = "https://gdata.youtube.com/feeds/api/videos/";
for(var i =0;i<youtubeResult.feed.entry.length;i++){
var youtubeVideoId = youtubeResult.feed.entry[i].id.$t.substring(27);
$.getJSON(youtubeVideoDetailReq + youtubeVideoId + "?alt=json&v=2",function(videoDetails){
youtubeMap.push({id: videoDetails.entry.id.$t.substring(27),runtime: videoDetails.entry.media$group.media$content[0].duration});
});
}
});
return youtubeMap;
}
逻辑是好的,但是当我调用这个函数时,由于 ajax,你们中的许多人已经理解了,我得到一个空数组。反正有没有得到完整的对象?我应该使用延迟对象吗?感谢您的回答。