continuous playing

9 contenuti / 0 new
Ultimo contenuto
continuous playing

Hello guys, mi son ritrovato a curiosare da queste parti e vorrei sottoporvi un quesito: lavoro in una webradio e vorrei rifare lo stramaledetto sito in Drupal(ora sono costretto ad usare Zend). Siccome nessuno vuole sentirne parlare perche' per loro "Drupal" e "canna da pesca" ha lo stesso significato, ho deciso che spendero' questo weekend per mockare un sito che abbia alcune delle funzionalita' base di quello attuale, in modo da spingere verso bigD e scongiurare l'avvento di wordpress. In particolare vi e' un annoso problema da risolvere: far si che il player continui a suonare anche quando l'utente cambia pagina. In questo momento il problema e' risolto tramite javascript, che intercetta il caricamento della pagina, esegue la richiesta in maniera asincrona e si preoccupa di modificare il DOM quando riceve la risposta. Sinceramente non ho trovato nessuna soluzione migliore, poiche' iframes o popup sono veramente pessimi, il primo per via della Search Engine Optimization e il secondo perche' non rispetterebbe le specifiche e potrebbe avere sfighe su taluni browser. Fatto tutto questo pistolotto, il succo e': avete qualche idea su come questo problema possa essere risolto? Potessi evitare chili di javascript lo apprezzerei, poiche' vorrei tenere il tutto il piu' leggero possibile(ora la home page pesa 4 mega e ha tanterrimo js)

Grazie a tutti

silent aka omissis

Ne so veramente poco sul'argomento e quindi mi limito a suggerirti qualche link
questi due (più altri) sono alla base di questa webradio
http://drupal.org/project/station
http://drupal.org/project/audio

è recentemente stato rilasciato l'installation profile openmedia con tutta una serie di moduli associati.

il sito di radioradicale è basato su D5, recentemente sono stati rilasciati alcuni moduli dagli sviluppatori del sito

daro' un'occhiata, grazie :)

@silent/omissis: Purtropo l'unica altra soluzione che mi viene in mente è sicuramente peggiore :D
Tabella di caching (magari poi con cacherouter la metti su memcache), in cui ogni X tempo della web radio trascorso viene mandata un informazione sul sever che indica il tempo che è stato raggiunto (un bell'UID come chiave e come dati tutti uelli relativi al canale che sta ascoltando, tempo a cui è arrivato, ...) alla generazione della pagina metti nei Drupal.settings il tempo a cui deve partire a generare il flusso audio (Drupal.setting o dove credi che sia meglio :P).
Altra soluzione è i fare la stessa cosa delegando l'ooperazione al cookies del sito, in questo modo eviti le richieste al server, ti memorizzi il punto dello stream a cui è arrivato momento per momento (non metterei step inferiori al secondo) e poi all'apertura ti leggi dove è arrivato e quindi puoi farlo partire da li.

E' sempre e comunque uan soluzione JS based ma sicuramente non da 400k (e poi lo sai, jQuery... anche se la prima cosa da fare è passare alla 1.3.2 :P )

Ciao
Marco
--
My blog
Working at @agavee

Mah magari mi sono perso qualcosa, ma lo stato del player non è solo acceso / spento (al max il volume come parametro aggiuntivo)? Se è solo così basta salvare con jquery cookie lo stato del player, e richiamarlo ad ogni pagina vista. Certo, ci sarà l'interruzione del caricamento di pagina, ma non ho mai visto webradio che facessero delle chiamate asincrone solo per evitare che il player si fermasse per qualche secondo.

Se poi devi proprio tenere il player sempre presente, metti un pulsantino che apre un vecchio ma sempre utile popup/finestra che permette all'utente di navigare in libertà.

soluzione tanto brutta quanto altrettanto funzionale è l'uso di un Frame? ormai sono scomparsi da anni.. mha potrebbe fare a caso tuo.
Comunque ho pensato anche io tempo fa di renedere continuo un player mentre Drupal potesse essere continuamente navigato senza problemi ed interruzioni... Scartando la soluzione Frame è davvero preistorica a mio parere "immaginavo" piuttosto di una soluzione che facesse uso di qualche stratagemma in Ajax che permettesse di caricare in modo asicrono intere aree del tema lasciando invariate altre..

Secondo me la soluzione migliore è inventarsi uno stratagemma che forse non risulterà stilisticamente il migliore ma senza dubbio potrebbe fare al caso nostro...

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits

io penso che cio' che faro' sara' un modulo che, abilitato, intercetta gli eventi onclick effettuati sui link e caricare la pagina in maniera asincrona inviando un flag per dire a drupal 'hey passami solo il contenuto senza il layout (e se la richiesta e' di tipo XHR)', che e' poi quello che succede gia' ora, solo lo farei un po' piu' strutturato. :P

@psicomante: mi avevi parlato di temi che facevano cose del genere, ma dove l'hai postato?

@omissis: FORSE ce la fai andando a usare un pò di JS lato client e andando a usare CTools per postare solo il content della pagina.

Ciao
Marco
--
My blog
Working at @agavee

Sono in accordo con kiuz...

kiuz wrote:
soluzione tanto brutta quanto altrettanto funzionale è l'uso di un Frame? ormai sono scomparsi da anni.. mha potrebbe fare a caso tuo.

Eccetto che non credo che sia brutto, anzi è elegante nella sua semplicità. Un <frameset> con due <frame> uno a 100% per la pagina 'a vista' e uno 'off screen' per la radio. Metti un bottone per spegnere/accendere il suono (tramite la pagina frameset) ed il gioco è fatto. Perfettamente valido XHTML, forse rimane il problema del URL visualizzato nel browser - ma questo l'avrai anche con soluzioni AJAX/AHAH

John

Più imparo, più dubito.