我试图使用JW-球员在我的应用程序。 研究这个问题了一下,似乎有几个废弃的努力,生产出的宝石,以及最新的是无证。 所以,在这里就是我要去一下:
我下载了6 JW-Player版本,解压缩并在我的/应用/资产/ JavaScript的目录复制的文件如下:
app/assets/javascripts/jwplayer/jwplayer.js
app/assets/javascripts/jwplayer.html5.js
app/assets/javascripts/jwplayer.flash.swf
在我的应用程序/视图/布局/ application.html.erb,我有以下几点:
<head>
<%= javascript_include_tag "/assets/javascripts/jwplayer/" %>
</head>
在应用程序/视图/页/ about.html.erb,我有以下几点:
<%= jw_player("http://xxxxx/video.mp4",
:width => 200, :height => 110) %>
下面是当我点击关于页链接会发生什么:
Showing xxxxxxxx/app/views/pages/about.html.erb where line #10 raised:
undefined method `jw_player' for #<#<Class:0x007fe77e37c018>:0x007fe780c1f678>
JW播放器的第一次使用。
Answer 1:
在实施JWPlayer 6.6,我们站在把jwplayer.flash.swf文件到公用文件夹,使闪光模式工作的选择之前,但它似乎很凌乱有这样分开的文件。 我最后还是没买,使其工作都在开发和生产为:
- 将所有3个文件到供应商/资产/ JavaScript的/ jwplayer
- 重命名jwplayer.js到jwplayer.js.erb
里面jwplayer.js.erb,更新这样的Flash文件路径配置(与HTML5文件路径配置1号线仅供参考)
j={type:"html5",src:e.base+"jwplayer.html5.js"}, b={type:"flash",src:"<%= asset_path('jwplayer/jwplayer.flash.swf') %>"};
(请注意,“e.base +” Flash文件路径移除路径之前 - 这就是,允许在开发environemtn工作相对路径的伎俩)
在我的理解中,JWPlayer许可证允许这样的修改:“改编出版者应被允许进行改编为这些服务条款,如改编,整合产品进入发行者的网站或其他特性在行使其权利的目的而合理需要。由出版商创建的所有改变都严格供自己使用和出版商从分发它创建的任何适应禁止。本公司保留禁止任何适应的用途自行决定的权利“。
Answer 2:
我刚刚完成了一个由创业板开始工作, 喜爱将通过提高mattherick ,可能在旧版本轨工作称为jwplayer护栏。 它不与资产管道的工作,但在mattherick固定,最多做了伟大的工作,我继续更新JWPlayer到最新的版本。
你可以看到仓库在这里 。
下面的说明是对上面的回购。
这种宝石添加到您的Rails应用程序这一行只是添加到您的应用程序的Gemfile:
gem 'jwplayer-rails', :git => 'git://github.com/dutgriff/jwplayer-rails.git'
要使用它首先包括在页面上资产
<%= jwplayer_assets %>
然后将与JW播放器一个div
<%= jwplayer %>
您可以通过选项来jwplayer助手来定制它:
<%= jwplayer({width: 500, height: 200}) %>
定制更多信息可以找到这里 。
这对我来说,到目前为止的伟大工程,但如果你发现一个问题,让我知道在这里或github上 。
Answer 3:
我已经找到了解决这个。
你需要的工作,周围的主要问题是,jwplayer.js希望基于jwplayer.js的道路上获取jwplayer.flash.swf和jwplayer.html5.js。
你可以看到,在Chrome开发者工具栏jwplayer.js(漂亮的打印):
(h.embed.config = function(b) {
var e = {fallback: !0,height: 270,primary: "html5",width: 480,base: b.base ? b.base : j.getScriptPath("jwplayer.js"),aspectratio: ""};
b = j.extend(e, h.defaults, b);
var e = {type: "html5",src: b.base + "jwplayer.html5.js"},
g = {type: "flash",src: b.base + "jwplayer.flash.swf"};
您可以使用base
属性作为一个未公开的API来告诉jwplayer其中jwplayer.flash.swf和jwplayer.html5.js可以找到。
例:
jwplayer("player-id").setup({
width: 640,
height: 480,
file: "www.w3schools.com/html/movie.mp4",
base: "http://cloudfront.net/assets/vendor/jwplayer/"
};
然后,它会寻找http://cloudfront.net/assets/vendor/jwplayer/jwplayer.flash.swf
。 注:jwplayer没有资产管道指纹文件名的概念,所以一定要同步都与MD5和没有文件。
Answer 4:
这为我工作:
- 将jwplayer文件夹中的公有 (长尾视频下载)
包括它像一个外部脚本,而不使用资产管道(HAML)。
%script{:src => '/jwplayer/jwplayer.js'}
在您的视频部分(ERB)
<script type="text/javascript"> jwplayer.key="Your key here"; $(document).ready(function(){ jwplayer("video").setup({ height: 360, width: 640, playlist: [ <% videos.each do |v| %> { image: "<%= v.poster %>", sources: [ { file: "<%= v.url %>" }, ] }, <% end %> ] }); }) </script> <video id="video">Video Loading... Ensure JavaScript is enabled...</video>
Answer 5:
你重新启动服务器下载播放器,包括它在你的布局之后。 这可能是失败的原因之一。
Answer 6:
从下载jwplayer http://www.longtailvideo.com/jw-player/download/
将这些文件复制到特定的目录: -
- 应用程序/资产/ jwplayer / jwplayer.flash.swf
- 供应商/资产/ JavaScript的/ jwplayer.js
- 供应商/资产/ JavaScript的/ jwplayer.html5.js
然后添加在application.js中这些线
//= require jwplayer
//= require jwplayer.html5
在正在播放视频的页面,添加这些行
<script type="text/javascript">jwplayer.key="YOUR_JWPLAYER_KEY";</script>
<div id="video">Loading the player ...</div>
<script type="text/javascript">
jwplayer("video").setup({
flashplayer: "<%=asset_path('jwplayer.flash.swf')%>",
file: "<%= file_path %>",
height: 360,
width: 640,
analytics: {
enabled: false,
cookies: false
}
});
http://account.longtailvideo.com/#/home从那里你可以得到从获取您的许可证部分签约的自由的自我托管的关键。
Answer 7:
我也选择了JWplayer。
这里是我的步骤。
我使用https://github.com/choix/jwplayer-rails宝石。
添加
gem 'jwplayer-rails', '1.0.1'
我的Gemfile。
的确从网页上面所有的东西; 在一个show.html.slim视图文件中包含这些行:
= jwplayer_assets
br
br
= jwplayer({file:@lesson.media_file})
lesson.media_file属性包含文件的位置。 对于视频文件的项目/公/视频/ videoclip.webm,media_file包含字符串“/videos/videoclip.webm”。
希望这将是有益的。
文章来源: JW-Player and Rails 3.2