2014-05-14 17 views
7

Ho la versione con licenza di JW Player 6. Ho scaricato i file e li ho inseriti nella directory assets/javascript. A parte la directory delle skin, c'è un file JS per il player HTML5 e un file flash.swf per il flash player. Tutto quello che ho fatto fino ad ora ha funzionato localmente ma non appena invio a Heroku ottengo degli errori.JW Player - Errore durante il caricamento del player: player HTML5 non trovato nell'app Rails 3.2 su Heroku

Primo tentativo:

Nel mio file application.js:

... 
//= require jwplayer/jwplayer 
//= require jwplayer/jwplayer.html5 # the file name is jwplayer.html5.js 
... 

Dopo l'esecuzione rake assets:clean ; rake assets:precompile ottengo il seguente errore nella visualizzazione (su Heroku):

An ActionView::Template::Error occurred in nodes#show: 
jwplayer/jwplayer.html5.js isn't precompiled 

Seconda tentativo:

Nel mio application.js File:

... 
//= require jwplayer/jwplayer 
... 

Poi, ho aggiunto questo al file di configurazione production.rb ambiente:

# Also tried %w(jwplayer.html5.js) 
config.assets.precompile += %w(jwplayer/jwplayer.html5.js) 

Dopo aver pulito e precompilare i beni e spingendo al Heroku, l'originale ActionView::Template::Error non era più succede, ma ora JW Player visualizza questo messaggio:

Error loading player: HTML5 player not found 

Questa è l'inizializzazione JW Player nella vista HAML:

:javascript 
    jwplayer("video_display_object_#{display_object.id}").setup({ 
    width: "948", 
    height: "533", 
    image: "#{display_object.video_screenshot_url}", 
    file: "#{display_object.resource_url}", 
    modes: [ 
     { type: 'flash', 
      src: "#{asset_path('jwplayer/jwplayer.flash.swf')}", 
      config: { 
      skin: "#{asset_path('jwplayer/skins/beelden.xml')}", 
      'controlbar.position': 'over', 
      'controlbar.idlehide': 'true' 
      } 
     }, 
     // I've also tried "#{javascript_path('jwplayer/jwplayer.html5.js}" 
     // And "/assets/jwplayer/jwplayer.html5.js" 
     { type: 'html5', src: "#{asset_path('jwplayer/jwplayer.html5.js')}" } 
    ] 
    }); 

io non so davvero cosa fare a questo punto. Come ho detto prima, tutto funziona localmente, non solo su Heroku.

Qualche suggerimento?

+0

È possibile inserire un esempio che può essere sottoposto a debug, se possibile? – emaxsaun

+0

Questo è tutto il codice della mia azienda quindi non è facile ottenere un esempio, purtroppo. – mmichael

+0

Ah, peccato, mi sarebbe piaciuto vedere qualcosa. – emaxsaun

risposta

5

Questo è stato abbastanza frustrante, ma siamo riusciti a farlo funzionare. La soluzione è in realtà abbastanza semplice (una volta che sai cosa fare):

Se si decide di NON utilizzare il JW Player cloud-installato (che è abbastanza facile da configurare poiché la pipeline di asset non è coinvolta), scaricare e decomprimere la cartella jwplayer.

Rilasciare la cartella estratta jwplayer nella cartella /app/assets/javascripts dell'app Rails.

Aggiungere il seguente alla /app/assets/javascripts/application.js:

//= require jwplayer/jwplayer 
//= require jwplayer/jwplayer.html5 

Run rake assets:precompile.

Per attivare e attivare il lettore in una vista, utilizzare il codice (HAML) riportato di seguito. (Ulteriori opzioni sono disponibili here.)

%div{id: 'video'} Loading the player... 
:javascript 
    jwplayer('video').setup({ 
    file: 'INSERT_VIDEO_FILE_PATH_HERE', 
    flashplayer: "#{asset_path('jwplayer.flash.swf')}", 
    html5player: "#{asset_path('jwplayer.html5.js')}" 
    }); 

E 'essenziale si specificano gli attributi flashplayer e html5player (nel caso in cui si desidera supportare entrambe le versioni del lettore).

Personalizza via!

+0

Ho dovuto rimuovere le "modalità" dal mio setup di jwplayer, ma questo ha funzionato. Grazie! – mmichael