jPlayer + Rails 3.1.3 swfPath?

时间:2012-04-11 02:47:00

标签: ruby-on-rails jplayer


我试图让jPlayer在rails应用程序中使用flash后备,到目前为止还没有运气!我的构造函数现在看起来像这样:

$("#jquery_jplayer_1").jPlayer({
preload: "auto",
errorAlerts: true,
swfPath: "javascripts",
solution: "flash, html",
supplied: "oga",
wmode: "window",
ended: function(e) {
        ...some function...
}
});

我似乎无法让swfPath更正,而且我必须在这里遗漏一些关于jPlayer如何寻找该路径的内容。我的其他资源(例如样式表中的图像)似乎已正确路由到assets文件夹/ images文件夹。我似乎无法找到神奇的组合来让jPlayer找到Jplayer.swf。我已经尝试将swf文件放在公用文件夹,公用文件夹中的文件夹,assets文件夹以及assets文件夹中的javascripts文件夹中。没运气!有没有人以前处理过这个问题?

3 个答案:

答案 0 :(得分:2)

我有同样的问题......在互联网上找不到答案后,我开始尝试一些东西:)

这对我有用(Rails 3.2):

$(document).ready(function(){
   $("#jplayer").jPlayer({
       ready: function (event) {
           $(this).jPlayer("setMedia", {
               m4a: "url goes here"
           });
       },
       swfPath: "/",
       supplied: "m4a",
       solution: "flash, html"
   });
});

或在coffeescript中:

$ = jQuery
$ ->
  $(document).ready ->
    $("#jplayer").jPlayer(
      ready: (event) ->
        $(this).jPlayer "setMedia",
          m4a: "url goes here"
      preload: "auto",
      swfPath: "/",
      solution: "html, flash",
      supplied: 'm4a')

我将Jplayer.swf文件放在public /下。立即行动!

答案 1 :(得分:1)

我认为这样做的一个好方法是在资产管道中添加swf目录。

您可以通过添加

来完成此操作
config.assets.paths << Rails.root.join("app", "assets", "swf")

到您的config/application.rb文件,然后将Jplayer.swf文件放入vendor/swf/Jplayer.swf

在您的JS文件中,您可以使用.js.erb

导入它
$(document).ready(function(){
  $("#jplayer").jPlayer({
    swfPath: "<%= asset_path "Jplayer.swf" %>"
  });
});

答案 2 :(得分:0)

由于此处尚无人提及,您也可以在jplayer初始化代码中执行此操作:

使用Rails&gt; = 3.2使用资产管道!

swfPath: "<%= escape_javascript(asset_path('jplayer/Jplayer.swf')) %>",
solution: "flash,html",
supplied: "rtmpa,mp3",

请记住文件有一个大写J: - )