Far funzionare il plugin Macromedia Flash con un server sonoro (PulseAudio o EsounD)

Adobe, durante lo sviluppo del Flash Player (qui il link ad un post “dell’epoca”), ha fatto alcune scelte per semplificarsi la vita. Una di queste è stata quella di non supportare alcun server sonoro in particolare, ma soltanto ALSA. Se le cose fossero rimaste così com’erano descritte in quel momento, si sarebbe trattato, IMHO, di un grosso colpo di zappa sui piedi: un server sonoro, qualunque esso sia, è qualcosa che ritengo indispensabile per poter gestire appropriatamente, quantomeno in fase di riproduzione, l’utilizzo delle periferiche sonore da parte di più programmi.

Per fortuna, Adobe ha avuto un’idea più felice:

Adobe sta sviluppando Flash Player 9 per Linux. Dato che GNU/Linux, e le sue molte componenti, è una piattaforma che permettem olte scelte, Adobe supporterà formalmente alcune distribuzioni di Linux in particolare.Alcune componenti cambiano di frequente — in particolare, audio, socket sicuri ed Unicode. Per permettere a Flash Player di adattarsi a queste variazioni, stiamo fornendo delle implementazioni predefinite per l’audio, i socket sicuri e l’Unicode, e reso disponibile agli sviluppatori una API perchè possano adattare queste ambiti (di funzionamento, ndr) a qualunque configurazione Linux. Adobe sta fornendo questo livello di supporto nella forma di una libreria a collegamento dinamico open-source chiamata libflashsupport. Questa libreria permetterà alle distribuzioni non supportate esplicitamente da Adobe di assicurarsi una fruizione completa del Flash Player. Stiamo incoraggiando la comunità di Linux a far esperimenti con libflashsupport per assicurarci che vada incontro alle sue aspettative.

Piccola premessa: io sono un sostenitore di EsounD.

OK, OK, lo so: non è più sviluppato, non è bello e potente come ARTS, Jack o altro ancora; il fatto è che resto impressionato dalla semplicità con cui può essere messo in funzione su un “desktop non integrato”, ossia su qualcosa che non sia GNOME o KDE-based – basta un semplice esd & piazzato da qualche parte, e quasi tutto si mette a funzionare. Anche distribuzioni particolarmente attente all’utente finale, come Ubuntu, seppure si appoggino a dmix (tanto per citare una delle numerose soluzioni possibili), sfruttano EsounD, sospetto per la facilità di implementazione e l’immediatezza di funzionamento.

Comunque sia, torniamo al link di poco fa: se si continua a leggere quella pagina, si trova il link ad un file sorgente C, libflashplayer.c. Si tratta un’esempio di utilizzo della libreria di cui sopra che di suo fa next to nothing, un’espressione che, in dialetto palermitano si tradurrebbe con nulla miscato cu nenti (nulla mischiato con niente), ovvero non serve ad un tubo.

La buona notizia in questa valle di lacrime è che i tipi di RevolutionLinux, nell’ambito dello sviluppo del loro server sonoro, PulseAudio, hanno preso quel file di esempio e hanno modificato la parte relativa all’audio in modo tale che cerchi, in quest’ordine:

  • PulseAudio
  • EsounD
  • ALSA
  • OSS

Che dire, buono, no? Direi di passare all’azione :-)

Come avrete capito se avete già letto qualche altro mio post, non sono favorevole all’uso ”allegro” di repository custom:
preferisco, nel caso non sia possibile creare un pacchetto a partire dai sorgenti contenuti in un ramo qualsiasi della distribuzione che sto usando, affidarmi alla buona vecchia trafila configure; make; make install.

Voi, ovviamente,  potete anche comportarvi in maniera diversa – non mancano, infatti, pacchetti precompilati per la libreria: poi, però, non venite a piangere nei commenti se qualcosa non funziona come dovrebbe in seguito alla vostra scelta ;-)

  1. Scarichiamo i sorgenti con svn co https://svn.revolutionlinux.com/MILLE/XTERM/trunk/libflashsupport/src
  2. Diamo un make; make install
  3. Fine :-D .

A me non è servito fare altro: dopo aver riavviato il browser (Opera) ho cominciato a sentire il suono di un filmato di YouTube.

Da notare che, come nel mio caso, questo metodo funziona benissimo anche all’interno di una chroot (sì, avete capito bene: una chroot a 32 bit sul mio sitema AMD64), a patto che il browser e il plugin siano già installati al suo interno, e la libreria venga ivi compilata.

[via PulseAudio - Revolution Linux OpenSource projects]


About this entry