在Rails中嵌入vimeo播放器?

时间:2010-02-03 02:50:02

标签: ruby-on-rails flash embed

我想允许用户提交vimeo网址并将其嵌入播放器中。是否有插件或宝石可以做到这一点?

由于

2 个答案:

答案 0 :(得分:0)

Vimeo详细介绍了如何使用他们的API进行嵌入: http://www.vimeo.com/api/docs/oembed

在他们的“非官方下载”页面下,有这个宝石: http://github.com/matthooks/vimeo

答案 1 :(得分:0)

老问题,但我发现自己处于同样的境地。

如果您不想检索视频的Vimeo iframe,可以使用以下代码。无需添加宝石。

添加助手

只需创建一个文件app/helpers/videos_helper.rb和以下行。

module VideosHelper

  require 'net/http'

  VIMEO_REGEX = %r(^https?:\/\/(?:.*?)\.?(vimeo)\.com\/(\d+).*$)

  # 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

  # Get Vimeo video iframe from given URL
  def get_vimeo_iframe url, width, height
    vimeo_id = find_vimeo_id url
    uri      = "https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/#{ vimeo_id }&width=#{ width }&height=#{ height }"
    response = Net::HTTP.get( URI.parse( uri ))
    json     = JSON.parse response
    json['html'].html_safe
  end

end

在视图中获取iframe

在您的视图中,只需致电get_vimeo_iframe()即可打印iframe。

<%= get_vimeo_iframe('http://your.vimeo.url') %>

或者如果你想要,你可以添加宽度和高度

<%= get_vimeo_iframe('http://your.vimeo.url', '800px', '450px') %>

如果您希望我创建此gist,您还可以询问 YouTube iframe(而不仅仅是Vimeo)。