[MPlayer-dev-eng] Re: Using -wid to embed mplayer into a java SWT application. (SOLVED)
Almerindo Rehem
almerindo.rehem at aracaju.se.gov.br
Tue Oct 11 16:50:45 CEST 2005
LOOK THIS: http://www.developer.com/java/other/article.php/3330861
[]'s
Almerindo Rehem
>Hi,
>Well even i tried the program , but i says the follow.
>error when compiled on eclipse:
>Exception in thread "main"
>java.lang.NoClassDefFoundError:
>org/eclipse/swt/internal/gtk/OS
> at
>org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
> at
>org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
> at
>org.eclipse.swt.widgets.Display.<clinit>(Display.java:121)
> at play.mplayer.main(mplayer.java:86)
>Can u help me out?
>Regards,
>Kamal
--- almerindo.rehem at aracaju.se.gov.br wrote:
>
>
> Reinier Zwitserloot <surial <at> gmail.com> writes:
>
> Hello All.
>
> In Linux dont works fine!
>
> I tried to use its code in linux and the screen of
> the video is for
> backwards of window SWT. The code modified for linux
> is:
>
> //Source starts here.
>
> import java.io.*;
>
> import org.eclipse.swt.*;
> import org.eclipse.swt.graphics.Color;
> import org.eclipse.swt.graphics.RGB;
> import org.eclipse.swt.layout.FillLayout;
> import org.eclipse.swt.widgets.*;
>
> public class Player
> {
> //You'll have to edit these paths to
> something useful.
> private static final String MPLAYER =
> "/usr/bin/mplayer";
> private static final String VIDEO_FILE =
> "/var/preserve/videos/video.mp4";
>
> public static Process setFile(final File
> pFile, final int hWnd)
> throws IOException
> {
>
> System.out.println("------------------------");
> System.out.println(hWnd);
>
> System.out.println("------------------------");
>
> final String[] lCmds = new String[] {
> MPLAYER,
> "-wid",
> String.valueOf(hWnd),
> "-nokeepaspect",
> "-geometry", "0:0",
> "-colorkey", "0x101010",
> "-vo", "x11",
> pFile.getAbsolutePath()
> };
>
> final Process lProcess =
> Runtime.getRuntime().exec(lCmds);
> final InputStream lOut1 =
> lProcess.getErrorStream();
> final InputStream lOut2 =
> lProcess.getInputStream();
>
> final Runnable lPrinter1 = new
> Runnable() {
> public void run()
> {
> try {
> final
> BufferedReader lReader = new
>
> BufferedReader(new InputStreamReader(lOut1,
> "UTF-8"));
> for (
> String l = lReader.readLine() ;l
> != null ; l = lReader.readLine() ) {
>
> System.out.println(l);
>
> }
> } catch ( Throwable
> t ) {
>
> t.printStackTrace();
> }
> }
> };
>
> final Runnable lPrinter2 = new
> Runnable() {
> public void run()
> {
> try {
> run2();
> } catch ( Throwable
> t ) {
>
> t.printStackTrace();
> }
> }
> public void run2()
> throws Throwable
> {
> final
> BufferedReader lReader = new
> BufferedReader(
>
> new InputStreamReader(lOut2, "UTF-8"));
>
> for ( String l =
> lReader.readLine() ;
>
> l != null ; l = lReader.readLine() ) {
>
>
> System.out.println(l);
>
> }
> }
> };
>
> new Thread(lPrinter1).start();
> new Thread(lPrinter2).start();
>
> return lProcess;
> }
>
> public static void main(String[] pArgs)
> throws Exception
> {
> final Display wDisplay = new
> Display();
>
>
> final Shell wShell = new Shell(wDisplay,
> SWT.SHELL_TRIM);
> final FillLayout wLayout = new
> FillLayout();
> wShell.setLayout(wLayout);
>
> final Canvas wVideo = new Canvas(wShell,
> SWT.EMBEDDED);
> final Color wColor = new Color(wDisplay, new
> RGB(0x10, 0x10, 0x10));
> wVideo.setBackground(wColor);
>
>
> wShell.setSize(800, 600);
> wShell.layout();
>
> wShell.setVisible(true);
> final Process lProcess =
> setFile(new File(VIDEO_FILE),
> wVideo.handle);
>
> while ( !wShell.isDisposed() ) {
> if (
> !wDisplay.readAndDispatch() ) {
> wDisplay.sleep();
> }
> }
>
> lProcess.destroy();
> }
> }
>
> I tried get the Window ID (wmctrl -l) and put with
> mplayer -wid ,
> but dont works too!
>
> The: "-vo", "x11" was changed...
>
>
> Any sugestion?
>
> thanks,
> Rehem
>
> >
> > DUUUUUUUH, of course. Now it works! All you have
> to add to make it work:
> >
> > final Color wColor = new Color(wDisplay, new
> RGB(0x10, 0x10, 0x10));
> > wVideo.setBackground(wColor);
> >
> > (right after creating the Canvas; the final Canvas
> wVideo = new
> > Canvas(wShell, SWT.EMBEDDED) line).
> >
> > Thanks a lot!
> >
> > -- Reinier Zwitserloot
> >
> > On 9/11/05, Sascha Sommer <saschasommer <at>
> freenet.de> wrote:
> > >
> > > The colorkey is the background color (as RGB
> value) of the video window.
> > >
> > > Sascha
> > >
> >
>
>
=== message truncated ===
More information about the MPlayer-dev-eng
mailing list