【问题标题】:HTML5 VIDEO is not working in my rails 3 appHTML5 视频在我的 rails 3 应用程序中不起作用
【发布时间】:2012-01-13 21:09:14
【问题描述】:

我正在尝试在开发中的 Rails 3 应用程序中显示 HTML5 视频,我正在使用 Sqlite3 和默认网络服务器 (Webrick)。我将视频文件 (movie.ogg) 放在资产 (assets/movie.ogg) 下。视频窗口屏幕显示,但那里没有视频。我有 3 个问题...由于 rails 应用程序资产没有视频子文件夹(因为它有图像),你把视频文件放在哪里? Webrick 是否支持 Html5 视频?下面是我的代码,我在这里缺少什么来制作视频?

查看

       <video width="320" height="240" controls="controls">
       <source src="/assets/movie.mp4" type="video/mp4" />
       <source src="/assets/movie.ogg" type="video/ogg" />
       <source src="/assets/movie.webm" type="video/webm" />
         Your browser does not support the video tag.
       </video>

config/initializers/mime_types.rb

  Rack::Mime::MIME_TYPES.merge!({
  ".ogg"     => "application/ogg",
  ".ogx"     => "application/ogg",
  ".ogv"     => "video/ogg",
  ".oga"     => "audio/ogg",
  ".mp4"     => "video/mp4",
  ".m4v"     => "video/mp4",
  ".mp3"     => "audio/mpeg",
  ".m4a"     => "audio/mpeg"
})

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 html5-video


    【解决方案1】:

    video_tag 帮助器构建 HTML 5 &lt;video&gt; 标记。

    默认情况下,文件从 public/videos 加载。要从 assets/video 加载,将以下行添加到您的 config/application.rb 文件:

    config.assets.paths << "#{Rails.root}/app/assets/videos"
    

    标签用法:

    <%= video_tag (["movie.mp4", "movie.ogg", "movie.webm"] :size => "320x240", :controls => true, :autobuffer => true) %>
    

    【讨论】:

    • 我有一个名为 Video 的模型,它是用户创建的,但我还需要能够将视频嵌入到网站上。当我创建此配置然后使用 video_tag 时,应用程序会通过 video_controller 来查找 Video 类中 id = "movie" 或任何视频文件名称的对象。知道如何解决这个问题吗?
    【解决方案2】:

    资产管道用于静态资产。如果您经常将视频文件添加到您的应用程序中,您应该将它们放在其他位置(例如,public/videospublic/system/videos)。如果它们确实是静态资产,请先尝试重新启动服务器。

    【讨论】:

      【解决方案3】:

      假设您的 html 是正确的,除非在使用资产管道的 rails 3.1 中情况发生了巨大变化,公用文件夹中包含的任何内容都可以从 Web 服务器提供,因此存储视频的确切位置取决于您。根据您上面的消息来源,您应该将您的视频放在公共/资产中,然后通过访问 http://localhost:3000/assets/movie.mp4(或视频的任何其他 src url)确认视频正在提供。

      【讨论】:

      • 谢谢。但是在公共文件夹中没有资产子文件夹吗?
      • 您需要在 public 中创建一个名为 assets 的新文件夹。除了图像、javascript 和样式表之外,Rails 没有默认设置。
      【解决方案4】:

      要在 Rails 4 中将视频作为静态资源提供,最好的方法是使用 video 标签:

      只需在“资产”中创建一个名为“视频”的文件夹并将您的视频存储在那里:

      app/assets/videos/mycoolvideo.mp4
      

      那么在你看来:

      <%= video_tag "mycoolvideo.mp4" %>
      

      如果您需要指定尺寸、海报图片或添加控件,请添加(但这是 HTML,而不是 Rails):

      <%= video_tag "mycoolvideo.mp4", width: "640", height: "480", poster: "mycoolvideo.jpg", controls: true %>
      

      注意,Rails 很聪明地知道图像在图像文件夹中,因此指定名称就足够了,无需在图像名称前添加 images/ 或 assets/images/。

      如果你想传入多个视频(或者更好的说法是不同格式的相同视频),传递一个数组:

      <%= video_tag ["mycoolvideo.mp4", "mycoolvideo.ogg", "mycoolvideo.webm"], size: "620x480", controls: true %>
      

      请注意,您可以使用 size: "widthxheight" ("640x360") 或单独使用 height: 和 width:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2018-04-01
        • 2016-10-21
        • 2016-02-23
        • 2012-12-21
        相关资源
        最近更新 更多