如何在RubyonRails中显示vimeo和youtube嵌入链接的缩略图?
我在我的网站中嵌入了youtube和vimeo链接,并试图在点击时显示视频的缩略图作为播放链接 我试过gem“has_vimeo_video”,但它只接受vimeo视频。所以我想展示两个视频的缩略图,即youtube和vimeo 请需要解决方案如何在RubyonRails中显示vimeo和youtube嵌入链接的缩略图?,youtube,ruby-on-rails-3.2,vimeo,Youtube,Ruby On Rails 3.2,Vimeo,我在我的网站中嵌入了youtube和vimeo链接,并试图在点击时显示视频的缩略图作为播放链接 我试过gem“has_vimeo_video”,但它只接受vimeo视频。所以我想展示两个视频的缩略图,即youtube和vimeo 请需要解决方案 谢谢我昨天发现有一个非常酷的。它基本上就是你想要的 Carrierwave的拇指钉插件。它混合到您的上传设置,使您上传的视频容易缩略图。这个软件现在已经相当成熟了,所以任何形式的开源协作都是受欢迎的 但您当然需要在应用程序中包含carrierwave。希
谢谢我昨天发现有一个非常酷的。它基本上就是你想要的 Carrierwave的拇指钉插件。它混合到您的上传设置,使您上传的视频容易缩略图。这个软件现在已经相当成熟了,所以任何形式的开源协作都是受欢迎的 但您当然需要在应用程序中包含carrierwave。希望这能有所帮助 Carreierwave是一个上传程序,它可以让用户上传应用程序中的内容,我认为 更新 或者,您可以使用它将嵌入式媒体添加到应用程序中。可以看出,API提供了很多响应选项。在这样做的过程中,您可以执行以下操作:
$.embedly('http://www.youtube.com/watch?v=_FE194VN6c4',
{maxWidth: 600,
elems: $('#element'),
success: function(oembed, dict){
alert(oembed.title);
});
elems属性是您希望嵌入视频的位置,以便在粘贴链接时嵌入视频。您需要传递视频url,并使用jQuery选择器从将url放入html的任何位置获取它
您的另一个选择是查看以下gem视频信息gem非常适合抓取缩略图:
这么简单的任务,你不需要任何宝石
url='1〕https://vimeo.com/126100721'
id=url.partition('vimeo.com/')。最后
结果=URI.open(“http://vimeo.com/api/v2/video/#{id}.json”).read
开始
parse(result).first['thumbnail\u large']
救援标准错误
无
结束
在“/app/helper”中添加一个新文件“thumbnail\u helper.rb”。在该文件中复制并粘贴以下代码:
module ThumbnailHelper
# Regex to find YouTube's and Vimeo's video ID
YOUTUBE_REGEX = %r(^(http[s]*:\/\/)?(www.)?(youtube.com|youtu.be)\/(watch\?v=){0,1}([a-zA-Z0-9_-]{11}))
VIMEO_REGEX = %r(^https?:\/\/(?:.*?)\.?(vimeo)\.com\/(\d+).*$)
# Finds YouTube's video ID from given URL or [nil] if URL is invalid
# The video ID matches the RegEx \[a-zA-Z0-9_-]{11}\
def find_youtube_id url
url = sanitize url
matches = YOUTUBE_REGEX.match url.to_str
if matches
matches[6] || matches[5]
end
end
# Finds youtube video thumbnail
def get_youtube_thumbnail url
youtube_id = find_youtube_id url
result = "http://img.youtube.com/vi/#{youtube_id}/0.jpg"
end
# Finds Vimeo's video ID from given URL or [nil] if URL is invalid
def find_vimeo_id url
url = sanitize url
matches = VIMEO_REGEX.match url.to_str
matches[2] if matches
end
# Finds vimeo video thumbnail
def get_vimeo_thumbnail url
vimeo_id = find_vimeo_id url
result = URI.open("http://vimeo.com/api/v2/video/#{vimeo_id}.json").read
begin
JSON.parse(result).first['thumbnail_large']
rescue StandardError
nil
end
end
# Main function
# Return a video thumbnail
# If the url provided is not a valid YouTube or Vimeo url it returns [nil]
def get_video_thumbnail(url)
if find_vimeo_id(url)
get_vimeo_thumbnail(url)
elsif find_youtube_id(url)
get_youtube_thumbnail(url)
end
end
end
现在从视图中调用get_video_缩略图(“video_url”)。它将返回给定视频的缩略图。因为我只是嵌入链接并将vimeo和youtube链接保存到我的数据库中,然后想显示缩略图并播放这些视频,所以它是carrierwave为嵌入链接制作缩略图吗?