3

私はjPlayerをRailsアプリのフラッシュフォールバックで動作させようとしていますが、これまでのところ運がありません!私のコンストラクターは現在次のようになっています。

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

swfPathを正しく取得できないようです。ここで、jPlayerがそのパスをどのように探しているかについて何かが欠けているに違いありません。スタイルシートの画像など、他のアセットはアセットフォルダ/画像フォルダに正しくルーティングされているようです。jPlayerにJplayer.swfを見つけさせる魔法の組み合わせが見つからないようです。swfファイルをパブリックフォルダー、パブリックフォルダー内のフォルダー、アセットフォルダー、およびアセットフォルダー内のjavascriptsフォルダーに配置してみました。運が悪い!誰かが以前にこの問題に対処したことがありますか?

4

3 に答える 3

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"
   });
});

またはコーヒースクリプトで:

$ = 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/ の下に配置しました。今すぐ動作します!

于 2012-04-25T02:20:27.940 に答える
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" %>"
  });
});
于 2013-03-02T21:43:55.247 に答える
0

ここではまだ誰も言及していないので、jplayer 初期化コードで次のようにすることもできます。

アセット パイプラインを使用する Rails >= 3.2 で動作します。

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

そして、ファイルには大文字の J があることを覚えておいてください:-)

于 2014-03-14T15:02:16.410 に答える