|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[JAVA] Player di video YouTube
Salve a tutti,
volevo realizzare un player di video YouTube in un JPanel, ma vedo che ci sono pochissime risorse in giro. Sto usando Google Data Protocol per reperire informazioni su un certo video, ma per il play niente da fare fin'ora, o meglio, la cosa sembrerebbe abbastanza ardua. Gli unici due documenti che ho trovato fin'ora sono i seguenti:Il primo utilizza una soluzione commerciale, quindi lo scarto. Il secondo invece fa riferimento proprio alle API della SUN che sembrerebbero avere già la soluzione. Ho provato a compilare la classe FlashPlayer che dicono, ma è un po' un casino per quanto riguarda le librerie da usare, perché non si trovano. Qualcuno mi può dare un aiuto? Grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
perchè vuoi incapsulare un video flash in java ?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Perché vuoi saperlo? È importante per te?
![]() Non voglio fare nulla di illegale tranquillo! ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
![]() Basta che segui passo passo le indicazioni nel blog del tizio che spiega come compilare FlashPalyer.java. Le librerie che devi aggiungere sono: * JDICplus.jar * beansbinding-1.2.1.jar * JDICplus_native_applet.jar che trovi nel file zip che contiene i binary, non i sorgenti, nella cartella "lib".
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Ooh! Alleluja, grazie!
Il fatto è che sto su Linux e il mio cervello si rifiutava di scaricare un file contenente la stringa "win32" ![]() Ora me lo compila! Grazie davvero. |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Per curiosità, quando lanci la demo e premi il bottone "sample game (SWF)" il gioco flash ti funziona?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Scusa il ritardo nella risposta.
Mi ci sono rimesso adesso. Dunque sto avendo un problema a runtime: Codice:
Exception in thread "main" java.lang.NoClassDefFoundError: sun/awt/windows/WToolkit at org.jdic.web.PeerClassFactory.createBrComponentPeer(PeerClassFactory.java:35) at org.jdic.web.BrComponent.init(BrComponent.java:341) at org.jdic.web.BrComponent.<init>(BrComponent.java:352) at org.jdic.web.BrComponent.<init>(BrComponent.java:361) at FlashPlayer.<init>(FlashPlayer.java:91) at FlashPlayer.main(FlashPlayer.java:181) Caused by: java.lang.ClassNotFoundException: sun.awt.windows.WToolkit at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 6 more Che jar manca secondo te? |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' una classe del jre di windows (che dipende da una libreria nativa di windows).
A prescindere, l'esempio di quella pagina non è un player di video youtube ma semplicemente un wrapper per il browser web. Se scarichi JDIC (non plus, quello normale) crei un browser (WebBrowser) lo infili in un JFrame e carichi la pagina web del video (setURL) ottieni lo stesso risultato. JDIC lo trovi qui: https://jdic.dev.java.net/servlets/P...&folderID=5497
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Se non sbaglio è un wrapper specifico per IE, giusto?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Funziona anche su linux/solaris/osx, non so se si agganci a firefox o mozilla, credo mozilla.
In teoria: non ho mai provato.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#11 | ||
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quote:
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Quote:
E quindi non esiste un'alternativa funzionante sotto Linux! Allucinante. |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Daje.
![]() ![]() Scrivo un programma d'esempio così vediamo subito se funziona anche su linux. Prima però un ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
LOL, scusa, ma sono un pò frastornato in queste ore!
![]() OK, aspetto l'esempio allora! Goditi il caffè! ![]() |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Allora, passo passo.
Scarica JDIC 0.9.5 cross-platform.zip https://jdic.dev.java.net/servlets/P...&folderID=5497 estrai l'archivio dove vuoi. Nella cartella "jdic-0.9.5-bin-cross-platform" (quella che contiene i bat) Ci metti questo esempio: Codice:
import java.awt.*; import java.awt.event.*; import java.net.*; import javax.swing.*; import java.io.*; import org.jdesktop.jdic.browser.*; public class YouEmbed implements Runnable { public static void main(String[] args) { EventQueue.invokeLater(new YouEmbed()); } public void run() { final WebBrowser browser = new WebBrowser(); browser.setPreferredSize(new Dimension(500, 500)); final JTextField field = new JTextField(); final JButton button = new JButton(new AbstractAction("carica") { public void actionPerformed(ActionEvent e) { loadVideo(field.getText(), browser); } }); JPanel top = new JPanel(new BorderLayout()); top.add(field); top.add(button, BorderLayout.EAST); JFrame window = new JFrame("YouEmbed"); window.add(top, BorderLayout.NORTH); window.add(browser); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.pack(); window.setVisible(true); } public void loadVideo(String uri, WebBrowser browser) { String body = "<object width='480' height='385'><param name='movie' value='$URI'></param><param name='allowFullScreen' value='false'></param><param name='allowscriptaccess' value='always'></param><embed src='$URI' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='480' height='385'></embed></object>"; body = "<html><body>" + body.replace("$URI", uri) + "</body></html>"; URL url = generateTemporaryFile(body); if(url != null) { browser.setURL(url); } } private URL generateTemporaryFile(String htmlContent) { URL url = null; PrintStream out = null; try { File temp = File.createTempFile("youembed", "html"); temp.deleteOnExit(); url = temp.toURI().toURL(); out = new PrintStream(temp); out.print(htmlContent); out.flush(); } catch(Exception ex) { ex.printStackTrace(); } finally { if(out != null) { out.close(); } } return url; } } javac -cp .:lib/* -d . YouEmbed.java ed esegui con: java -cp .:lib/* YouEmbed Dovrebbe saltar fuori una finestra tristissima con un campo di testo e un pulsante. Nel campo di testo incolli la stringa http://www.youtube.com/v/XyX-KJwUohw che sarebbe l'indirizzo dell'oggetto flash da incorporare. Premi "carica" e vedi che dice. Stando alle faq funziona se c'è mozilla (versione antelucana) e potrebbe funzionare con gli altri browser linuxeschi.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Grazie,
l'ho provato ma quando clicco su carica non mostra nulla e non succede niente; inoltre quando ho lanciato il programma (che è appunto partito senza problemi), ho ottenuto questa eccezione: Codice:
Native loader! java.security.PrivilegedActionException: java.io.IOException: Native resourse [bin/linux/amd64/jdic.so] was not found in JAR. at java.security.AccessController.doPrivileged(Native Method) at org.jdesktop.jdic.init.NativeExtractor.loadLibruary(NativeExtractor.java:172) at org.jdesktop.jdic.init.JdicManager.loadLibrary(Unknown Source) at org.jdesktop.jdic.browser.WebBrowser.<clinit>(Unknown Source) at YouEmbed.run(YouEmbed.java:15) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: java.io.IOException: Native resourse [bin/linux/amd64/jdic.so] was not found in JAR. at org.jdesktop.jdic.init.NativeExtractor.extractBinary(NativeExtractor.java:141) at org.jdesktop.jdic.init.NativeExtractor$1.run(NativeExtractor.java:174) ... 13 more isDefaultBrowserMozilla Exception in thread "EventThread" java.lang.UnsatisfiedLinkError: org.jdesktop.jdic.browser.internal.WebBrowserUtil.nativeGetBrowserPath()Ljava/lang/String; at org.jdesktop.jdic.browser.internal.WebBrowserUtil.nativeGetBrowserPath(Native Method) at org.jdesktop.jdic.browser.internal.WebBrowserUtil.getBrowserPath(Unknown Source) at org.jdesktop.jdic.browser.internal.WebBrowserUtil.getEmbedBinaryName(Unknown Source) at org.jdesktop.jdic.browser.NativeEventThread.run(Unknown Source) |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Pure quella c'hai. Eccheccazz...
![]() Devi compilare i sorgenti per ottenere le librerie native per amd64. I sorgenti li trovi nella stessa pagina: https://jdic.dev.java.net/servlets/P...354&folderID=0 Qui sembrano esserci delle vaghe istruzioni per la compilazione. https://jdic.dev.java.net/issues/show_bug.cgi?id=280 Stavo anche pensando che un'altra via potrebbe essere quella di integrare un player javafx però non so se supporta il formato usato da youtube (h123ciapel chel ghè o qualcosa del genere), credo di no per problemi di IP.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#18 | |||
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
E c'hai ragione!! Porca zozza!
![]() Quote:
![]() ![]() Quote:
Quote:
|
|||
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
L'integrazione è banale (la questione era stata affrontata in un altro thread qui).
Il problema è che.... ma che cacchio di formati supporta il player di javafx? Se carico un avi mi apre un finestrone a parte, così, tanto per gradire. Con gli mp4 mi dice "ma che sei scemo?". Se carico uno swf mi fa una pernacchia... Ma torniamo a JDIC dico io! jawt lo trovi in \jdk\include. Prova a compilare includendo tutto quello che trovi in jdk\include.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Frugando in rete ho trovato questo:
http://fr2.rpmfind.net/linux/RPM/man....0.x86_64.html Apparentemente è un precompilato JDIC a 64 bit. Forse frugando nei repository per la tua distribuzione linux trovi un omologo oppure puoi usare direttamente quello?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:20.