JMF in PDA

I want use JMF in PDA. Mine is Ipaq 3630 with CPU StrongARM SA1110. So I install PJAVA 1.1 Beta. And I download cross-platform version JMF. But I don't know how to install JMF into PDA. Could anyone tell me how to install ? Thanks

I am developping an application for iPAQ 3870. We want to transmit video and audio from iPAQ to iPAQ, from iPAQ to PC, from PC to iPAQ and from PC to PC.
We are developping with JAVA jdk 1.3 for PC and with Jeode VM, which is compliant with java jdk 1.1.8 for iPAQ.
For the transmission and reception of audio and video, we are using Java Media Framework (JMF) 2.1.1 API.
There are 3 versions of JMF:
- 1 for Windows 95/98/2k/NT
- other for Linux/Solaris
- other for Cross Platform.
We are using the Windows Performance Pack of JMF for PC and the Cross Platform Version of JMF for iPAQ.
There is no problem to transmit and receive video and audio with this JMF for PC, but for iPAQ we have a lot of problems because the Cross Platform Version of JMF is very limited.
The transmision and reception of video and audio is made by Real Time Protocol (RTP).
I would like to know what kind of API can be used for the iPAQ version of the application.
I believe that we can use a different API for iPAQ that uses RTP for transmission and reception.
If this API is Java Compliant, it would be much better.
I would like to know what kind of camera can be used for the iPAQ for this purpose.
I mean, what kind of camera can be used for the API for the transmission and reception of the video.
I would like to know if the microphone integrated on the iPAQ works with the API for transmission and reception of audio.
Thank you very much

Similar Messages

  • JMF on PDA with linux famliar

    Hello,I am disperate
    When I tried to install the jmf on my pda with linux familiar I have got this error message:
    Quando tento di installare le jmf su palamre con linux familiar ricevo il seguente errore
    Unpacking...
    Extracting...
    ./install.sfx.2146: 1: Syntax error: "(" unexpected
    Exception in thread "main" java.lang.UnsatisfiedLinkError: /j2re1.3.1/lib/armv4l
    /libawt.so: libXm.so.2: cannot open shared object file: No such file or director
    y
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1382)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1298)
    at java.lang.Runtime.loadLibrary0(Runtime.java:749)
    at java.lang.System.loadLibrary(System.java:820)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:53)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:41)
    at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
    at java.awt.Component.<clinit>(Component.java:356)
    Done.
    Why?
    thanks

    I have solved the previous problem but now when I tri to reproduce an audio file I haven't listened any!
    What is the problem?
    Pleasure help me!!!!!!very very urgent

  • Play wav file on PDA using JMF

    Hi all,
    I need to play wav files on a PDA so I installed J9 on the PDA and downloaded either JMF crossplatform and JMF for windows (version jmf 2.1.1.e for both of them).
    I included in the classpath the jmf.jar from JMF crossplatform and sound.jar from JMF for windows (the JMF crossplatform doesn't have the sound.jar and jmf.jar requires some classes contained in it).
    When I run my testing application I have such an error:
    Unable to handle format: LINEAR, 8000.0 Hz, 8-bit, Mono, Unsigned, 8000.0 frame rate, Framesize=8 bits
    Failed to prefetch: com.sun.media.PlaybackEngine@287a287a
    Error: Unable to prefetch com.sun.media.PlaybackEngine@287a287a
    I have the same error playing wav files with different features (8 or 16KHz, 8 or 16 bits ).
    Can anyone help me?
    Any suggestion is welcome. Thanks in advance!
    Message was edited by:
    pirascrs

    not really I have seen it. The only buyable version left is IBM j9. All the rest basically are sold to handset manufacturers.
    Its hectic out there. I still cant play audio on J9 to build a simple tourist guide!!!!
    javajoom is for wtk21 - hello its 2007.
    Oh well lets toss pda's out of the window along with Microsoft's OS and use smart phone OS - or should I toss J2me and start on C# to be on the safe side???
    Has anyone an answer?

  • How to receive RTP data by JMF

    Hello!!
    I have a ipaq3870 installed Jeode.
    I can run JMStudio to play media on PDA and receive RTP data from PC's JMStudio.
    But I can't receive RTP data by AVReceive2.
    I compressed AVreceive2 into custom.jar.
    Can anyone teach me how to do?
    Did my steps correct?
    Thank you!!
    Shih-Wei Chen

    Hi,
    hope we could talk a little more about this because I am also trying to do some applications with the JMF and Personal Java / Jeode.
    So far I haven�t worked with the JMstudio but with the AVReceive and the AVTransmit classes. My Transmit-PC is a Desktop PC running Windows XP and my Receive Handheld is Sharp Zaurus with - as I said - Personal Java / Jeode running.
    Both classes run but the Transmitter only says "Transmitting ..." and the Receiver says "Waiting for data to arrive" and nothing happens.
    Perhaps you know what I am doing wrong ? Can it be the Windows XP - Linux ? But the JMF ist platform independent, isn�t it ?
    Do you think the JMStudio is better than the AVReceive ?
    How did you manage to run jmstudio under Jeode ?
    Of course he didn�t find the "java" exec because it is called evm but how can I change this ?
    Thanks for your help
    Poldi

  • Receiving Video RTP Stream (JMF) in JME ( MMAPI ) - URGENT !!!

    Hi Folks...
    I�m trying to develop an application that sends the images from a web cam connected to the computer, to the PDA that the images can be viewed by the user...
    My code for the JMF RTP Video Stream is as follows.
    Processor proc = null;
              javax.media.protocol.DataSource ds = null;
              TrackControl[] tc = null;
              int y;
              boolean encodingOk = false;
              Vector<javax.media.protocol.DataSource> datasources = new Vector<javax.media.protocol.DataSource>();
              for( int x = 0 ; x < camerasInfo.length ; x++ ){
                   try {
                        proc = Manager.createProcessor(camerasInfo[x].getLocator());
                   }catch (NoProcessorException e) { System.out.println("Erro ao int�nciar PROCESSOR: " + e);     }
                    catch (IOException e) { System.out.println("Erro ao int�nciar PROCESSOR: " + e); }
                   proc.configure();
                   try {
                        Thread.sleep(2000);
                   } catch (InterruptedException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                   proc.setContentDescriptor( new ContentDescriptor(ContentDescriptor.RAW_RTP) );
                   tc = proc.getTrackControls();
                   for( y = 0; y < tc.length ; y++ ){
                        if (!encodingOk && tc[y] instanceof FormatControl){
                             if( ( (FormatControl) tc[y] ).setFormat( new VideoFormat(VideoFormat.RGB) ) != null ){
                                  tc[y].setEnabled(true);                              
                             }else{
                                  encodingOk = true;
                        }else{
                             tc[y].setEnabled(false);
                   proc.realize();
                   try {
                        Thread.sleep(2000);
                   } catch (InterruptedException e1) {
                        e1.printStackTrace();
                   try{
                        ds = proc.getDataOutput();
                   }catch(NotRealizedError e){
                        System.out.println("ERRO ao realizar datasource: " + e);
                   }catch(ClassCastException e){
                        System.out.println("Erro ao realizar datasource: " + e);
                   datasources.add(ds);
                   System.out.println( ds.getLocator() );
                   encodingOk = false;
              MediaLocator ml = new MediaLocator("rtp://10.1.1.100:99/video");
              try {
                   DataSink datSink = Manager.createDataSink(ds , ml);
                   datSink.open();
                   datSink.start();
              } catch (NoDataSinkException e) {
                   System.out.println("Erro ao instanciar DataSink: " + e );
              } catch (SecurityException e) {
                   System.out.println("Erro ao iniciar DataSink: " + e);
              } catch (IOException e) {
                   System.out.println("Erro ao iniciar DataSink: " + e);
              }I�m not sure if this code is correctly... it is ?
    So... the next part of the systems runs on the PDA..
    The code that access this RTP Stream is as follows..
              VideoControl c = null;
              try {
                   player = Manager.createPlayer("rtp://10.1.1.100:99/video");
                   c = (VideoControl) player.getControl("VideoControl");
                   tela = (Item) c.initDisplayMode( GUIControl.USE_GUI_PRIMITIVE, null);
                   player.start();
                   append(tela);
              } catch (IOException e) {
                   str.setText(e.toString());
                   append( str );
              } catch (MediaException e) {
                   str.setText(e.toString());
                   append( str );
              }So when the APP try to create a player for "rtp://10.1.1.100:99/video" an MediaException is throwed..
    javax.microedition.media.MediaException: Unable to create Player for the locator: rtp://10.1.1.100:99/video
    So... I don�t know what happen =/
    The error is in the PDA module ? Or in the computer�s initialization off the RTP Video Streaming ?
    I need finish this job at next week... so any help is usefull..
    Waiting for answers
    Rodrigo Kerkhoff

    First of all: before going onto the j2me part, make sure the server works, before doing anything else! Apparently, it doesn't...
    The MediaLocator is generally used to specify a kind of URL depicting where the data put into the datasink should go to. In your case, This cannot be just some URL where you want it to act as a rtps server. You'll need to implement that server yourself I guess.

  • JMF in iPAQ3950

    Hi, all!
    I have some problem.
    I have a iPAQ3950 PDA and installed java VM(PJava, Jeode, CrEme).
    I want to develope application for transmitting voice data with RTP and JMF.
    I am searching that solution but I have not get that until now.
    whoever knows that, Please help me!

    I installed cross-platformed JMF 2.1.1b(or 2.1.1c) on PDA.
    It played wav file.
    And JMStudio in PC transmitted wav file to PDA and JMStudio in PDA played wav file well.
    but JMStudio in PDA cannot transmit wav file to PC because the former cannot search audio device.
    If anyone know this, please tell me how to do....thanks!

  • Using JMF with applet

    Hello,
    I've got an applet that consumes a lot of CPU. I'm studying to migrate this applet to a pda, but it's not enough cpu for it. I'm reading JMF docs and I decide to generate a movie with the output of an applet. �If it's possible? My idea is to create the movie on the server. I can modify my applet to avoid the use of the applet inheritance and then render the output to an standard movie format. After I will send the movie to the browser
    You can see the applet here. Click on View route 3D under the flash movie.
    http://www.tmb.net/vullanar/en_US/resultatcerca.jsp?tipusrepre=0&origenx=31514.420&origeny=82758.000&descripcioorigen=L1+-ARCDE+TRIOMF&destix=34704.550&destiy=87378.460&descripciodesti=L2+-ARTIGUES-SANTADRI%C0&tipustransport=0&numtransbords=2&tempscaminant=20&velocitatcaminant=1&tipushora=1&dia=27&mes=05&hora=12&minut=22&idioma=en_US&operador=TMB&poblacioorigen=1&poblaciodesti=1
    Thanks in advance,
    David B.

    passionforjava2 wrote:
    ...I have issues with applet unable to transmit voice using JMF. i know it is a security issue. As the error on the console says
    java.lang.RuntimeException: No permission to capture from applets
    Error : Couldn't create DataSourceWhen JMF is installed, it generally offers a checkbox to allow or deny 'capture in applet'. By default it is not checked, and if the user goes with that recommendation, I am not sure that anything will overrule that.
    In a folder iPhone/myphone/What is the URL where we can visit this applet?
    .. i have applet embedded html file along with .jar files with required classed and applet signed. Are you prompted to trust the digitally signed code? You can see the dialog I mean by visiting the applet linked from [http://pscode.org/test/docload/].
    ..Along with that .jar i do have jmf.jar and java.policy.applet file and jmf.properties file . Forget the policy files, they are a waste of time, and completely impractical for end users.

  • Install JMF on Windows 7 64bit

    Dear all,
    After a lot of struggling (and a really mean a lot), I finally got jmf to work on Windows 7 64bit. I figured that I can better not let this information go to waste, so that's why I'm posting it here. I didn't really test the full capabilities of jmf on my platform yet, in fact I only tested those features that I needed for my application. As such I am able to successfully capture and record video clips from my build in webcam of my laptop.
    First let me describe my platform:
    Laptop: Samsung R590 (JS01)
    Processor: I5 450M (64bit)
    OS: Windows 7 64bit
    Webcam: build in
    Secondly I want to apologize in advance if the method below doesn't work for you. The reason for that can be that I had to try so many different things before I finally got it to work, so I'm not really sure which steps are necessary and which ones are not. So I tried to make a guide that only includes the necessary steps, but in reality I tried so much more, so if this tutorial doesn't work for you, please give me feedback, and we'll try to figure it out. :)
    Step one: installation of java JRE/JDK
    JMF will never work on a 64bit JRE/JDK, plain and simple because JMF is too old and doesn't support a 64bit JRE/JDK. Thus your first step has to be to install a 32 bit JRE/JDK on your system. (I uninstalled my 64 bit JRE/JDK first, but I don't now whether or not this is necessary)
    Step two: download JMF with windows performance pack
    Go to the jmf site and download the most recent jmf version, with windows performance pack. (This is - and will probably be forever - version 2.1.1e)
    The link to the website is currently: [https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7372-jmf-2.1.1e-oth-JPR@CDS-CDS_Developer]
    Step three: install JMF
    Install the file you just downloaded in the normal way you would install any other program. But chose as installation path: "C:\JMF2.1.1e"
    I think this is necessary because of the strict security policy in Windows 7, if you don't do this, I guess jmf won't be able to store capture device settings to your local hard drive. (But again, I'm not completely sure here, please verify this if possible)
    After the installation, you don't have to do anything special to get jmf to work, so you don't manually have to set the JMFDIR, PATH and CLASSPATH (as is explained at the sun website), just skip those steps.
    After the installation, reboot your pc.
    Remark: I recommend you to install jmf as an administrator (but I don't now whether or not this is necessary). To do this, right click the installation file and select: "run as administrator'.
    *Step four: register your capture devices*
    First make sure that all your devices are working properly, I recommend you to use a program like Skype or something just to check whether your microphone is working or not.
    Secondly, open jmfstudio, select 'file > preferences > capture devices', and press the button 'detect capture devices'. Normally you will have to wait for a couple of minutes now (because the determination of all the available video formats takes quite a while). Afterwards jmf should have found all of your devices, that usually looks something like this:
    DirectSoundCapture
    JavaSound audio capture
    vfw:Microsoft WDM Image Capture (Win32):0
    But this can vary according to your configuration off course. :)
    *Step four: test your capture devices*
    In jmfstudio, select 'file > capture' and select the video and audio combo and see if your webcam settings work. You should now be able to view and hear yourself.
    *Step five: that's it, enjoy your jmf*
    *Remarks:*
    My development platform is currently netbeans 6.9.1 and I am able to write code, build it and run it with netbeans. I can also just run normal *.jar files
    *Troubleshoot:*
    If you get a dialog screen when starting your video capture device that looks like this: [http://www.alexandria.nu/ai/machine_vision/dual_cameras/SelectDevice.gif]
    (With off course another name for the capture device), then that means that your capturing device is currently occupied by another program and you can't currently use it.
    To solve this, make sure that no other application is using the webcam. For me even this was insufficient, but I managed to solve this by installing the latest drivers for my webcam from the manufacturing site of my laptop.
    I sincerely hope this tutorial can be of any use for someone, feel free to give me comments/suggestions. And please post here if this works for you or not.
    Greetings, Molly

    Hi
    sure I follow each of your steps, I uninstall all java verisones and installed a new java version 32-bit, I installed JMF in "C: \ JMF2.1.1e".
    when all installing finished, works fine JMF only once, I do the tests, recognizes the device; shows the video, but when I close and open again JStudio don't works throws error, and therefore my apliación not working, always returns null the device

  • Unable to capture video from webcam in JMF in xlet

    hi
    I am unable to capture video from webcam in an Xlet. I am using Xletview to run Xlet. The method CaptureDeviceManager.getDeviceList(vidformat) returns empty array. Which videoformat should I use and why do I get empty array?
    Thanks
    Rajesh

    MHP and OCAP only use JMF 1.0, which does not include support for capturing video. You will not be able to do this in any current MHP/OCAP imlementation that I know of.
    Steve.

  • Unable to capture video from webcam in JMF

    hi
    I am unable to capture video from webcam in an Xlet. I am using Xletview to run Xlet. The method CaptureDeviceManager.getDeviceList(vidformat) returns empty array. Which videoformat should I use and why do I get empty array?

    MHP and OCAP only use JMF 1.0, which does not include support for capturing video. You will not be able to do this in any current MHP/OCAP imlementation that I know of.
    Steve.

  • Detecting Video Capture Devices without Installing JMF

    Hi All,
    I want to detect the video capture devices, without installing the JMF.
    I had included the jmf (windows version) in lib path in netbeans ide. I am able to detect the audio capture device. But unable to detect the video capture devices. But if I install the JMF, I am able to detect the Video Capture devices in My system. Can anyone help me?
    Thanks,
    Vinoth Kumar.

    YES! Please take a look at SIP Communicator project. They have all what u want.
    The main idea is copy all .dll files to System or System32 (Please check files which JMF will copy to ur computer and where).
    U need to have jmf.jar and sound.jar too ( maybe more) in your computer.
    Your program should have DirectSoundAuto.java, JavaSoundAuto.java, JavaSoundDetector.java, JMFInit.java. Those files are in JMStudio source code. They are used to detect all capture devices and register it to JMF, but wait !!! where they will be saved? In order to save information about capture devices which are detected, you should create "jmf.properties" file in the same location with jmf.jar.Therefore, u should modify the JMFInit.java so it can check if the "jmf.properties" exists. If it's not, you have to create it.
    Check SIP Communicator at Folder "media" then "device". They have modified those files I mentioned above and created some new files to SC can detect more devices.
    Edited by: tamngminh on Sep 16, 2008 9:50 AM

  • Problems in sound capture and JMF deployment

    Hello:
    I am new to JMF.
    I made an applet using JDK 1.3 on JBuilder 5. This applet captures and plays audio. When I run it through JBuilder's IDE, it runs fine. But when I run it independently, the applet's GUI appears but sound recording doesnn't work. Remember that I have JRE1.4.2 and JMF2.1.1e installed on my machine.
    When I installed JMF, I enabled the recording, and file writing options for an applet.
    To further check the problem, I ran it through JMF debugger. There I found that it says that ,
    <permission javax.sound.sampled.AudioPermission "record";> is not enabled.
    To enable it I added this entry in java.policy. This allowed the audio capture to work.
    But my question is,
    1. Why isn't this entry present by default in java.policy?
    2. Even one of my user entered this entry in java.policy, but was unable to capture audio.
    3. I want my applet to be running with different users having different versions of JRE,JMF and browser settings. How can I do this, without asking my user to do anything? I simply want that when my user downloads this applet, I should provide him with some installation file that installs JMF as well as configures everything on the system in a way that he can use this applet easily.
    Haven't you guys faced such problems in deploying JMF stuff?
    I'll be grateful for any help.
    Thanks
    Jami

    Hi.
    I am facing very similar problems: it looks like deploying JMF with Java Applets is really a challange!
    On my own test installation, if I enable audio capture and file writing for applets through the JMFRegistry, then I am able to record audio from my test applet, even when executed in the target web browser.
    Nevertheless, how to deploy the applet in such a way clients won't be required to manually install JMF and enable audio capture and file writing through the JMFRegistry?
    It looks like the JMF Customizer is able to produce a custom JAR also embedding user preferences for audio capture from applets and file writing , is this correct?
    Any help would be greatly appreciated.
    Regards,
    Marco.

  • Application not working on PDA.

    Hi All,
    I am facing a strange problem.I have made one applicationwhere i am inserting the data in to the backend.when i am doing it from Desktop mi client and Mobile 5 data is getting inserted but when i am using imate PDA windows 2003 all fileds are getting inserted except one. I m using CrEme327a_AX_CE42_PPC_minimal.CAB this version of creme. I am not getting any error as such.Can any one help me in this regard.
    Regards
    Devendra Phate

    Buddy,
    JavaScripts are not supported in PIE (your IE on the PDA). You need to enable it.
    Go to Microsoft Downloads. Get IETOOLS.EXE from the same. Install that software using ActiveSync into your PDA. Then you'll have the option to enable the JScripts. After which your JavaScripts will work.
    Regards
    Ak.
    PS: Is that a date field that's not getting updated?

  • JMF code working under linux but not windows XP

    Hello everyone,
    I'm currently working on a nice cross-platform project involving sound producing. I decided to take a look at JMF and test it a bit to know if its features can suit me. I tried to make it works under windows, using a very simple sample of code. The system seems to play the sound as some console output detects the start and the end, but all i hear is a very short noise ( 1/2second ) like a "CLIK" and nothing else. I tested the code under linux, using the same computer and it works just fine, playing the same wave nicely and entirely.
    some info:
    -i used the cross platform JMF, no performance pack ( i tried it , but still no result )
    -the code just opens a file dialog and plays the selected file
    -the selected file was always a very simple .wav
    -i did not use system classpath variables because i don't like it, i rather use local classpath ( which works fine too, no doubt about it )
    -i tested this little soft on 2 other computer using windows XP, and still got the same result.
    Please, have you got an idea about what's going on ?
    Thanks a lot for any answer!
    Maxime - Paris . France
    Code Sample:
    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import javax.media.*;
    import javax.swing.JDialog;
    import javax.swing.JFileChooser;
    import javax.swing.JOptionPane;
    public class JMFSound extends Object implements ControllerListener {
         File soundFile;
         JDialog playingDialog;
         public static void main (String[] args) {
              JFileChooser chooser = new JFileChooser();
              chooser.showOpenDialog(null);
              File f = chooser.getSelectedFile();
              try {
                   JMFSound s = new JMFSound (f);
              } catch (Exception e) {
                   e.printStackTrace();
         public JMFSound (File f) throws NoPlayerException, CannotRealizeException,     MalformedURLException, IOException {
              soundFile = f;
              // prepare a dialog to display while playing
              JOptionPane pane = new JOptionPane ("Playing " + f.getName(), JOptionPane.PLAIN_MESSAGE);
              playingDialog = pane.createDialog (null, "JMF Sound");
    playingDialog.pack();
              // get a player
              MediaLocator mediaLocator = new MediaLocator(soundFile.toURL());
              Player player =     Manager.createRealizedPlayer (mediaLocator);
    player.addControllerListener (this);
    player.prefetch();
    player.start();
    playingDialog.setVisible(true);
         // ControllerListener implementation
         public void controllerUpdate (ControllerEvent e) {
    System.out.println (e.getClass().getName());
         if (e instanceof EndOfMediaEvent) {
                   playingDialog.setVisible(false);
                   System.exit (0);
    Message was edited by:
    Monsieur_Max

    Hello everyone,
    I'm currently working on a nice cross-platform project involving sound producing. I decided to take a look at JMF and test it a bit to know if its features can suit me. I tried to make it works under windows, using a very simple sample of code. The system seems to play the sound as some console output detects the start and the end, but all i hear is a very short noise ( 1/2second ) like a "CLIK" and nothing else. I tested the code under linux, using the same computer and it works just fine, playing the same wave nicely and entirely.
    some info:
    -i used the cross platform JMF, no performance pack ( i tried it , but still no result )
    -the code just opens a file dialog and plays the selected file
    -the selected file was always a very simple .wav
    -i did not use system classpath variables because i don't like it, i rather use local classpath ( which works fine too, no doubt about it )
    -i tested this little soft on 2 other computer using windows XP, and still got the same result.
    Please, have you got an idea about what's going on ?
    Thanks a lot for any answer!
    Maxime - Paris . France
    Code Sample:
    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import javax.media.*;
    import javax.swing.JDialog;
    import javax.swing.JFileChooser;
    import javax.swing.JOptionPane;
    public class JMFSound extends Object implements ControllerListener {
         File soundFile;
         JDialog playingDialog;
         public static void main (String[] args) {
              JFileChooser chooser = new JFileChooser();
              chooser.showOpenDialog(null);
              File f = chooser.getSelectedFile();
              try {
                   JMFSound s = new JMFSound (f);
              } catch (Exception e) {
                   e.printStackTrace();
         public JMFSound (File f) throws NoPlayerException, CannotRealizeException,     MalformedURLException, IOException {
              soundFile = f;
              // prepare a dialog to display while playing
              JOptionPane pane = new JOptionPane ("Playing " + f.getName(), JOptionPane.PLAIN_MESSAGE);
              playingDialog = pane.createDialog (null, "JMF Sound");
    playingDialog.pack();
              // get a player
              MediaLocator mediaLocator = new MediaLocator(soundFile.toURL());
              Player player =     Manager.createRealizedPlayer (mediaLocator);
    player.addControllerListener (this);
    player.prefetch();
    player.start();
    playingDialog.setVisible(true);
         // ControllerListener implementation
         public void controllerUpdate (ControllerEvent e) {
    System.out.println (e.getClass().getName());
         if (e instanceof EndOfMediaEvent) {
                   playingDialog.setVisible(false);
                   System.exit (0);
    Message was edited by:
    Monsieur_Max

  • Swing and jmf

    can u please have a look to the attached file
    i know that this involves the jmf API but I have the feeling that has to do more with swing, thats whay I post my question here
    this simple application is based on the MDI.java example of the jmf web
    pages
    I also added a slider and want to set the playback rate for the player from
    there if possible
    that is I want everytime that I move the slider and the value is biggerthan
    50 the rate to be reduced according to a simple calculation that converts
    the slider value to a value between 0 an1 for the rate...
    so all i want to do is pass the slider value to the player everytime that
    the slider changes value and this is bigger than 50
    the attached file can do that only when the player starts playing the
    file,,,,
    after the player has started and the rate is set I cant change it even if
    the slider moves
    when I tried to do that from within the stateChanged method of the slider I
    was getting a Nullpointer exception because of the EventDispatching thread,
    so I thought to take this piece of code out of there (create the setnewrate
    method in the jmframe instead),,,,but then of course doesnt work like I
    would want,,,,,
    do I have to register the class that implements the frame for the player as
    a ChangeListener on the slider to achieve that, is something like that
    possible....
    I know that swing is not supposed to be thread safe, so maybe this is what
    the problem is after all...any suggestions to that direction?
    Can u please have a look??
    I am a beginner so any help would really be very much appreciated
    thanx :)
    maria
    .....and the attached file
    I think the problem is with the stateChanged method for the Jslider...
    I am getting a null pointerexception because of the eventdispatching thread
    pls ignore any silly mistakes I am a completely newbie in java
    myAppfr2.java
    import javax.media.*;
    import com.sun.media.ui.*;
    import javax.media.protocol.*;
    import javax.media.protocol.DataSource;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.util.Vector;
    import javax.swing.border.Border.*;
    import java.util.Hashtable;
    public class myAppfr2 extends Frame {
    * VARIABLES
    JMFrame jmframe = null;
    JDesktopPane desktop;
    FileDialog fd = null;
    CheckboxMenuItem cbAutoLoop = null;
    Player player ;
    //Player newPlayer = null;
    String filename;
    boolean stopped;
    public my_slider test_slider;//put it here so I can use it by name by all code
    float rate;
    * MAIN PROGRAM / STATIC METHODS
    public static void main(String args[]) {
    //if (args.length > 0)
         //rate=Float.parseFloat(args[0]);
    myAppfr2 mdi = new myAppfr2();
    static void Fatal(String s) {
    MessageBox mb = new MessageBox("JMF Error", s);
    * METHODS
    public myAppfr2() {
    super("VHE Demo");
    // Add the desktop pane
    setLayout( new BorderLayout() );
    desktop = new JDesktopPane();
    desktop.setDoubleBuffered(true);
         desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);//makes dragging faster
    add("Center", desktop);
    setMenuBar(createMenuBar());
    setSize(640, 480);
    setVisible(true);
         test_slider = new my_slider("networkutil");
         createnetworkutil();
         try {
         UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel") ;
    } catch (Exception e) {
    System.err.println("Could not initialize personal look and feel");
    addWindowListener( new WindowAdapter() {
    public void windowClosing(WindowEvent we) {
    System.exit(0);
    Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, new Boolean(true));
    private MenuBar createMenuBar() {
    ActionListener al = new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
    String command = ae.getActionCommand();
    if (command.equals("Open")) {
    if (fd == null) {
    fd = new FileDialog(myAppfr2.this, "Open File",
    FileDialog.LOAD);
    fd.setDirectory("~/movies");
    fd.show();
    if (fd.getFile() != null) {
    String filename = fd.getDirectory() + fd.getFile();
    openFile("file:" + filename);
    } else if (command.equals("Exit")) {
    dispose();
    System.exit(0);
    MenuItem item;
    MenuBar mb = new MenuBar();
    // File Menu
    Menu mnFile = new Menu("File");
    mnFile.add(item = new MenuItem("Open"));
    item.addActionListener(al);
    mnFile.add(item = new MenuItem("Exit"));
    item.addActionListener(al);
    // Options Menu
    Menu mnOptions = new Menu("Options");
    cbAutoLoop = new CheckboxMenuItem("Auto replay");
    cbAutoLoop.setState(true);
    mnOptions.add(cbAutoLoop);
    mb.add(mnFile);
    mb.add(mnOptions);
    return mb;
    //create slider and add it to desktop
    public void createnetworkutil(){
    test_slider.pack();
    desktop.add(test_slider);
    test_slider.setVisible(true);
    * Open a media file.
    private void openFile(String filename) {
    String mediaFile = filename;
    Player player = null;
    // URL for our media file
    URL url = null;
    try {
    // Create an url from the file name and the url to the
    // document containing this applet.
    if ((url = new URL(mediaFile)) == null) {
    Fatal("Can't build URL for " + mediaFile);
    return;
    // Create an instance of a player for this media
    try {
    player = Manager.createPlayer(url);
    } catch (NoPlayerException e) {
    Fatal("Error: " + e);
    } catch (MalformedURLException e) {
    Fatal("Error:" + e);
    } catch (IOException e) {
    Fatal("Error:" + e);
    if (player != null) {
    this.filename = filename;
    JMFrame jmframe = new JMFrame(player, filename);
    desktop.add(jmframe);
    class JMFrame extends JInternalFrame implements ControllerListener {
    public Player mplayer;
    Component visual = null;
    Component control = null;
    int videoWidth = 0;
    int videoHeight = 0;
    int controlHeight = 30;
    int insetWidth = 10;
    int insetHeight = 30;
    // boolean firstTime = true;
    public JMFrame(Player player, String title) {
    super(title, true, true, true, true);
    getContentPane().setLayout( new BorderLayout() );
    //setSize(320, 10);
    setLocation(200, 25);
    setVisible(true);
    mplayer = player;
    mplayer.addControllerListener((ControllerListener) this);
    mplayer.realize();
    addInternalFrameListener( new InternalFrameAdapter() {
    public void internalFrameClosing(InternalFrameEvent ife) {
    mplayer.close();
    public void controllerUpdate(ControllerEvent ce) {
    // System.out.println("controllerUpdate");
    //SwingUtilities.isEventDispatchThread();
    if (ce instanceof RealizeCompleteEvent) {
    mplayer.prefetch();
    } else if (ce instanceof PrefetchCompleteEvent) {
    if (visual != null)
    return;
         //setnewrate();
         //rate=mplayer.getRate();
         System.out.println( mplayer.getRate());
    if ((visual = mplayer.getVisualComponent()) != null) {
    Dimension size = visual.getPreferredSize();
    videoWidth = size.width;
    videoHeight = size.height;
    getContentPane().add("Center", visual);
    } else
    videoWidth = 320;
    /*if ((control = mplayer.getControlPanelComponent()) != null) {
    controlHeight = control.getPreferredSize().height;
    getContentPane().add("South", control);
    setSize(videoWidth + insetWidth,
    videoHeight + controlHeight + insetHeight);
    validate();
    mplayer.start();
    } else if (ce instanceof StartEvent){
         if (test_slider.netutil==0) {
         mplayer.stop();
         } else if (ce instanceof EndOfMediaEvent && cbAutoLoop.getState()) {
    mplayer.setMediaTime(new Time(0));
              boolean stopped=true;
              mplayer.prefetch();
              mplayer.start();
              stopped=false;
    class my_slider extends JInternalFrame implements ChangeListener{
    //Set up parameters.
    int netini=50;
    public int netutil=netini;
    public my_slider(String windowTitle) {
    super(windowTitle, false, false, false, false);
    getContentPane().setLayout(new BorderLayout());
    setLocation(25,25);// for the internal frame that contains the slider
    setVisible(true); //..same
    //Create the slider(the component included in "my_slider" internal frame
         JSlider mslider = new JSlider(JSlider.VERTICAL,
    0, 100, netini);
    mslider.addChangeListener((ChangeListener) this);
    mslider.setMajorTickSpacing(10);
    mslider.setPaintTicks(true);
    //Create the label table.
    Hashtable labelTable = new Hashtable();
    labelTable.put(new Integer( 0 ),
    new JLabel("0%") );
    labelTable.put(new Integer( 25 ),
    new JLabel("25%") );
    labelTable.put(new Integer( 50 ),
    new JLabel("50%") );
    labelTable.put(new Integer(75),
    new JLabel("75%") );
         labelTable.put(new Integer( 100),
    new JLabel("100%") );     
    mslider.setLabelTable(labelTable);
    mslider.setPaintLabels(true);
    mslider.setBorder(
    BorderFactory.createEmptyBorder(0,0,0,10));
         //Put everything in the content pane.
    getContentPane().add(mslider, BorderLayout.CENTER);
    public void stateChanged(ChangeEvent e) { //System.out.println("stateChanged");
    // SwingUtilities.isEventDispatchThread();
    if (e instanceof ChangeEvent){
    JSlider source = (JSlider)e.getSource();
    if (!source.getValueIsAdjusting()) {
    netutil= (int)source.getValue();
         System.out.println(netutil);
              if (jmframe.mplayer!=null) {
         jmframe.mplayer.setRate((float)(netutil/(netutil+(0.3*netutil))));
              if (jmframe.mplayer.getTargetState() <Player.Started)
         jmframe.mplayer.prefetch();
    i am stuck so any help would be really very much appreciated

    did you ever resolve this.
    I may be having similar problems
    I have an JMF application running under webstart. It runs ok in Java 1.3
    Now I am trying to get ti to run under Java 1.4. The attached error is rather useless,
    but by guess at what is happening is that the JMF control has some .awt. stuff included
    but that Java 1.4 emulates .awt. in swing. But something was not set and the default does not
    work.
    This error messages does not appear in the 1.3 run
    Any suggestions would be greatly appriatated.
    1.4 result:
    mg version 2.1.1a
    player created com.sun.media.content.unknown.Handler@3a1834
    ctr com.sun.media.PlaybackEngine$BitRateA@4a9a7d
    ctr com.sun.media.BasicJMD[panel0,0,0,512x200,invalid,layout=java.awt.BorderLayout]
    duration? javax.media.Time@6b5666 sec = 9.223372036854776E9
    time unknown javax.media.Time@754699
    will realize the player
    realize
    javax.media.TransitionEvent[source=com.sun.media.content.unknown.
    Handler@3a1834,previous=Unrealized,current=Realizing,
    target=Realized]
    start smxBADS
    bass start
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo(Unknown Source)
    at javax.swing.plaf.metal.MetalScrollButton.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintWithBuffer(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo(Unknown Source)
    at javax.swing.plaf.metal.MetalScrollButton.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintWithBuffer(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    realize done
    panel found java.awt.Panel[panel1,0,0,0x0,invalid] java.awt.Panel[panel2,4,216,292x30,layout=java.awt.FlowLayout]
    press a button
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo(Unknown Source)
    at javax.swing.plaf.metal.MetalScrollButton.paint(Unknown Source)
    at javax.swing.JComponent.paintChildren(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintWithBuffer(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception occurred during event dispatching:
    java.lang.NullPointerException
    1.3 result
    mg version 2.1.1a
    player created com.sun.media.content.unknown.Handler@354749
    ctr com.sun.media.PlaybackEngine$BitRateA@5b484d
    ctr com.sun.media.BasicJMD[panel3,0,0,512x200,invalid,layout=java.awt.BorderLayout]
    duration? javax.media.Time@46d228 sec = 9.223372036854776E9
    time unknown javax.media.Time@f7386
    will realize the player
    realize
    javax.media.TransitionEvent[source=com.sun.media.content.unknown.
    Handler@354749,previous=Unrealized,current=Realizing,
    target=Realized]
    start smxBADS
    bass start
    javax.media.DurationUpdateEvent[source=com.sun.media.content.unknown.Handler@354749,duration=javax.media.Time@55c0f9
    javax.media.Time@55c0f9
    javax.media.RealizeCompleteEvent[source=com.sun.media.content.unknown.Handler@354749,previous=Realizing,current=Realized,target=Realized]
    realized complete
    prefetch
    realize done
    controlComp com.sun.media.ui.DefaultControlPanel[,0,0,74x21,invalid,layout=java.awt.BorderLayout]
    add controlComp 21 java.awt.Panel[panel4,10,-12,258x47,invalid]
    javax.media.TransitionEvent[source=com.sun.media.content.unknown.Handler@354749,previous=Realized,current=Prefetching,target=Prefetched]
    start smxBADS
    bass start
    running ok from here on

Maybe you are looking for

  • Back-up with Time Capsule using Ethernet?

    I want to backup 1TB of data from an iMac HD using the iMac's ethernet connection. This is not a first connection to the Time Capsule ; I need to recreate the backup after a hard disk failure and replacement. Time Capsule sticks to the wireless netwo

  • Replace an existing enterprise software device with the standard one for 8700f ?

    I have a software device on my 8700f which was installed with a security option from my previous employer (Password in addition to the PIN code + Security time out). How to replace this installed software with a standard one from Blackberry? Solved!

  • How could I use Appendchunk Function in DBTools

    I am a user of Labview2009,I want save a binary file into MySQL(5.1) and I want use the Appendchunk Function ,which is one method of the ADO-parameter object . How should I do it with LabView DBTools? thanks your help! charles

  • Image SPAM (Played out)

    I know that most of you are tired of hearing about Image SPAM. It seems like a new article is written ever day or so: http://news.google.com/news?hl=en&ned=us&q=image+spam I'm curious. I have to give a short presentation to some management in IS, and

  • Adobe Premiere in Windows 7

    Hello there! Someone knows if I can install adobe premiere (any version) in a computer that has Windows 7?? Thanks???