JMF with JSDT

Hai there,
I want a help regarding transmitting video over the web through JSDT channel; since i don't know the reciever's ip address.
Could any one please tell me how to create DataSink to JSDT channel rather than usual media locator.
Bye !!

Java Shared Data Toolkit (JSDT) is used for group chat. Channels can be created to facilitate transfer of text content to multiple clients. In general any object can be passed through channel. Any number of channels can be created.
My question was how can a data sink of JMF be created to this channel?
Regards,
Shan

Similar Messages

  • JMF with Fobs4jmf:  Problem getting supported formats

    I'm trying to use JMF with fobs4jmf to try stitching together video files into a single file. Fortunately, I found a sample program to do just that in the SDN website (http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/Concat.html).
    I copied and pasted the Concat.java class in a new Eclipse Java class, set up the classpaths, and tested it. (I've gone through the pain of setting up and resetting classpaths so that the JMF diagnostics is able to detect the correct JMF installation in my machine).
    However, in the tryMatch method of Concat.java, I am getting an empty array of Format objects, represented by the "supported" variable, during a call to the following:
    {color:#0000ff}TrackControl tc = pInfo[0].tracksByType[type][trackID].tc;
    Format origFmt = tc.getFormat();
    Format newFmt, oldFmt;
    Format supported[] = tc.getSupportedFormats();
    for (int i = 0; i < supported.length; i++) {
    if (supported[i] instanceof AudioFormat) {
    // If it's not the original format, then for audio, we'll
    // only do linear since it's more accurate to compute the
    // audio times.
    if (!supported.matches(tc.getFormat()) &&
    !supported[i].getEncoding().equalsIgnoreCase(AudioFormat.LINEAR))
    continue;
    {color:#000000}Here's my problem: While on debug mode, I see that the "supported" variable shows an empty array, when I look deeper in the TrackControl tc variable and look the its supportedFormats instance variable, I can see that it has a value. For my testing, I used a .mov file and the supportedFormats variable contains an {color:#0000ff}AudioFormat{color} with the value {color:#0000ff}mp4a, 32000.0 Hz, 16-bit, Stereo, BigEndian, Signed, FrameSize=32 bits{color}.
    {color}
    {color:#000000}I can't get past through this hurdle for now. Why am I getting an empty array of Format objects when the TrackControl tc variable actually contains value in its supportedFormats property?
    I'd appreciate any help on this matter.
    Anthony
    {color}
    {color}

    I again don't have my code in front of me, but I did take a look at the sample code my code is based on...
    Format format = tracks.getFormat();
    if (tracks[i].isEnabled()) {
    supported = tracks[i].getSupportedFormats();
    Just a shot in the dark, but perhaps getSupportedFormats returns the empty set when the TrackControl object is disabled?
    Try enabling the TrackControl before you try to get its supported formats, and see if that changes the behavior in any sort of meaningful way?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Error in feeding JMF with inputstream, please help

    Hi,
    in order to feed JMF with inputstreams, audioinputstreams actually, you have to modify the DataSource.java and write a custom one so that it accepts inputstreams for the construction of the datasource, because with MediaLocator you can only specify existing files in the hard disk or somewhere in the network.
    Searching I found this ByteBufferDataSource, which allows you to construct a DataSource from a ByteBuffer object.
    The problem is that when using it and trying to send the stream via RTP to another machine, i get the following error:
    Exception in thread "JMF thread: com.sun.media.ProcessEngine@d6a05e[ com.sun.media.ProcessEngine@d6a05e ] ( configureThread)" java.lang.NullPointerException
         at com.sun.media.ProcessEngine.isRTPFormat(ProcessEngine.java:99)
         at com.sun.media.ProcessEngine.reenableHintTracks(ProcessEngine.java:107)
         at com.sun.media.ProcessEngine.doConfigure(ProcessEngine.java:63)
         at com.sun.media.ConfigureWorkThread.process(BasicController.java:1370)
         at com.sun.media.StateTransitionWorkThread.run(BasicController.java:1339)
    This error has appeared in some other post, but haven�t found the solution to it, I guess is something to do with the file format.
    So please, I really need your help with this, as I�m getting stuck in a academical project because of this. I attach the bytebufferdatasource
    Thank you for your time,
    bye
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.PullDataSource;
    import java.nio.ByteBuffer;
    import java.io.IOException;
    import javax.media.MediaLocator;
    import javax.media.Duration;
    import javax.media.Time;
    * @author Chad McMillan
    public class ByteBufferDataSource extends PullDataSource {
    protected ContentDescriptor contentType;
    protected SeekableStream[] sources;
    protected boolean connected;
    protected ByteBuffer anInput;
    protected ByteBufferDataSource(){
    * Construct a <CODE>ByteBufferDataSource</CODE> from a <CODE>ByteBuffer</CODE>.
    * @param source The <CODE>ByteBuffer</CODE> that is used to create the
    * the <CODE>DataSource</CODE>.
    public ByteBufferDataSource(ByteBuffer input, String contentType) throws IOException {
    anInput = input;
    this.contentType = new ContentDescriptor(contentType);
    connected = false;
    * Open a connection to the source described by
    * the <CODE>ByteBuffer/CODE>.
    * <p>
    * The <CODE>connect</CODE> method initiates communication with the source.
    * @exception IOException Thrown if there are IO problems
    * when <CODE>connect</CODE> is called.
    public void connect() throws java.io.IOException {
    connected = true;
    sources = new SeekableStream [1];
    sources[0] = new SeekableStream(anInput);
    * Close the connection to the source described by the locator.
    * <p>
    * The <CODE>disconnect</CODE> method frees resources used to maintain a
    * connection to the source.
    * If no resources are in use, <CODE>disconnect</CODE> is ignored.
    * If <CODE>stop</CODE> hasn't already been called,
    * calling <CODE>disconnect</CODE> implies a stop.
    public void disconnect() {
    if(connected) {
    sources[0].close();
    connected = false;
    * Get a string that describes the content-type of the media
    * that the source is providing.
    * <p>
    * It is an error to call <CODE>getContentType</CODE> if the source is
    * not connected.
    * @return The name that describes the media content.
    public String getContentType() {
    if( !connected) {
    throw new java.lang.Error("Source is unconnected.");
    return contentType.getContentType();
    public Object getControl(String str) {
    return null;
    public Object[] getControls() {
    return new Object[0];
    public javax.media.Time getDuration() {
    return Duration.DURATION_UNKNOWN;
    * Get the collection of streams that this source
    * manages. The collection of streams is entirely
    * content dependent. The MIME type of this
    * <CODE>DataSource</CODE> provides the only indication of
    * what streams can be available on this connection.
    * @return The collection of streams for this source.
    public javax.media.protocol.PullSourceStream[] getStreams() {
    if( !connected) {
    throw new java.lang.Error("Source is unconnected.");
    return sources;
    * Initiate data-transfer. The <CODE>start</CODE> method must be
    * called before data is available.
    *(You must call <CODE>connect</CODE> before calling <CODE>start</CODE>.)
    * @exception IOException Thrown if there are IO problems with the source
    * when <CODE>start</CODE> is called.
    public void start() throws IOException {
    * Stop the data-transfer.
    * If the source has not been connected and started,
    * <CODE>stop</CODE> does nothing.
    public void stop() throws IOException {
    }

    Sorry for the formatting, I attach it again here with well format:
    the error was:
    Exception in thread "JMF thread: com.sun.media.ProcessEngine@d6a05e[ com.sun.media.ProcessEngine@d6a05e ] ( configureThread)" java.lang.NullPointerException
         at com.sun.media.ProcessEngine.isRTPFormat(ProcessEngine.java:99)
         at com.sun.media.ProcessEngine.reenableHintTracks(ProcessEngine.java:107)
         at com.sun.media.ProcessEngine.doConfigure(ProcessEngine.java:63)
         at com.sun.media.ConfigureWorkThread.process(BasicController.java:1370)
         at com.sun.media.StateTransitionWorkThread.run(BasicController.java:1339)
    and the java file for generating the datasource from the bytebuffer was:
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.PullDataSource;
    import java.nio.ByteBuffer;
    import java.io.IOException;
    import javax.media.MediaLocator;
    import javax.media.Duration;
    import javax.media.Time;
    * @author  Chad McMillan
    public class ByteBufferDataSource extends PullDataSource {
        protected ContentDescriptor contentType;
        protected SeekableStream[] sources;
        protected boolean connected;
        protected ByteBuffer anInput;
        protected ByteBufferDataSource(){
         * Construct a <CODE>ByteBufferDataSource</CODE> from a <CODE>ByteBuffer</CODE>.
         * @param source The <CODE>ByteBuffer</CODE> that is used to create the
         * the <CODE>DataSource</CODE>.
        public ByteBufferDataSource(ByteBuffer input, String contentType) throws IOException {
            anInput = input;
            this.contentType = new ContentDescriptor(contentType);
            connected = false;
         * Open a connection to the source described by
         * the <CODE>ByteBuffer/CODE>.
         * <p>
         * The <CODE>connect</CODE> method initiates communication with the source.
         * @exception IOException Thrown if there are IO problems
         * when <CODE>connect</CODE> is called.
        public void connect() throws java.io.IOException {
            connected = true;
            sources = new SeekableStream [1];
            sources[0] = new SeekableStream(anInput);
         * Close the connection to the source described by the locator.
         * <p>
         * The <CODE>disconnect</CODE> method frees resources used to maintain a
         * connection to the source.
         * If no resources are in use, <CODE>disconnect</CODE> is ignored.
         * If <CODE>stop</CODE> hasn't already been called,
         * calling <CODE>disconnect</CODE> implies a stop.
        public void disconnect() {
            if(connected) {
                sources[0].close();
            connected = false;
         * Get a string that describes the content-type of the media
         * that the source is providing.
         * <p>
         * It is an error to call <CODE>getContentType</CODE> if the source is
         * not connected.
         * @return The name that describes the media content.
        public String getContentType() {
            if( !connected) {
           throw new java.lang.Error("Source is unconnected.");
            return contentType.getContentType();
        public Object getControl(String str) {
            return null;
        public Object[] getControls() {
            return new Object[0];
        public javax.media.Time getDuration() {
            return Duration.DURATION_UNKNOWN;
         * Get the collection of streams that this source
         * manages. The collection of streams is entirely
         * content dependent. The  MIME type of this
         * <CODE>DataSource</CODE> provides the only indication of
         * what streams can be available on this connection.
         * @return The collection of streams for this source.
        public javax.media.protocol.PullSourceStream[] getStreams() {
            if( !connected) {
           throw new java.lang.Error("Source is unconnected.");
            return sources;
         * Initiate data-transfer. The <CODE>start</CODE> method must be
         * called before data is available.
         *(You must call <CODE>connect</CODE> before calling <CODE>start</CODE>.)
         * @exception IOException Thrown if there are IO problems with the source
         * when <CODE>start</CODE> is called.
        public void start() throws IOException {
         * Stop the data-transfer.
         * If the source has not been connected and started,
         * <CODE>stop</CODE> does nothing.
        public void stop() throws IOException {
    }

  • Using JMF with JBuilder

    I was trying to use JMF with JBuilder 2005 but didnt know how to configure the libraries. I asked many people but no one could help me. I just found a web site about this problem so i would like to share it with those who are facing the same problem. hope it will help.
    check http://www.computer-logic.net/javafaq/JFAQ_MediaFiles.htm

    put the two jar files,jdom jar and xerces.jar files into the resourec in jbuilder.sorry if i am not clear in the answer.
    cheers

  • JMF with IPv6

    Hello!
    I am trying to solve the MediaLocator problem wirh JMF and IPv6. I read the solution for JMF with IPv6 allready brought up in this forum and the article 'http://www.ctie.monash.edu.au/DSS-IPv6/jmf-ipv6.htm', but it is not working.
    I checked all hints, and all my IPv6 settings like reverse lookup on my machine... but I still get the message 'Cannot create the DataSink: java.io.IOException: No Valid RTP MediaLocator
    Failed to create a DataSink for the given output MediaLocator' when i try to transmit a rtp stream.
    I am using Linux with working (allready tested), Java 1.5 and JMF2.1.1e
    Does anybody has a suggestion how to solve my problem and how to use JMF with IPv6.
    Thanks
    Adam

    Hello!
    I am trying to solve the MediaLocator problem wirh JMF and IPv6. I read the solution for JMF with IPv6 allready brought up in this forum and the article 'http://www.ctie.monash.edu.au/DSS-IPv6/jmf-ipv6.htm', but it is not working.
    I checked all hints, and all my IPv6 settings like reverse lookup on my machine... but I still get the message 'Cannot create the DataSink: java.io.IOException: No Valid RTP MediaLocator
    Failed to create a DataSink for the given output MediaLocator' when i try to transmit a rtp stream.
    I am using Linux with working (allready tested), Java 1.5 and JMF2.1.1e
    Does anybody has a suggestion how to solve my problem and how to use JMF with IPv6.
    Thanks
    Adam

  • Bundle JMF with application or ask user to install it?

    I have added some video capturing functionality to my application (not an applet).
    Now I am not sure if I should bundle JMF with the application or if I should ask the user to download and install JMF him/herself. Personally I think it is nicer to have extensions like JMF installed so that they are available for other applications as well. But I wonder about the acceptance of users having to download and install something additionally to an application they are interested in.
    Any experiences on that?
    Thanks in advance!
    Torsten

    Ideally, you should support both options. The system should install out of the box
    on standard configurations that you support, with as little extra work as possible.
    However, there should be some way to work around this if JMF is already installed.
    We use IzPack, and so far things have gone ok, but we haven't done anything really
    complicated.
    One tricky bit is that JMF has native libraries. I wanted to have an application that
    needed native libraries to be nothing but an executable jar file, but I couldn't figure
    out how to do it untill I found an article describing how to do this: basically you have
    to copy the dll or .so file from the jar file to a tmp file, and then load it from the tmp file.
    There is a web page somewhere that explains this, but I couldn't find it right away.
    Good luck,
    -- cary

  • JMF with Native Libraries as Signed Applet

    Hello
    After spending a few days hunting through forums, digging into JMF source code and hacking in the dark I'm about to give up, but thought I'd start yet another thread on this. It's a long, sad story...
    Problem: Deploying a JMF based program that relies on native libraries (in this case the FOBS4JMF bindings) as an applet: how to get jmf.properties and the native libraries loaded properly.
    Partial Solution: the native libraries packaged in a signed jar file, added to the applet's archive property, extracted using getResourceAsStream(), and loaded using System.load(). This is how FOBS4JMF loads it's native library anyway (via the com.moesol.NativeLibraryFinder):
    Class classInApplet; // name of a class loaded by the applet
    File outputFile; // location for extracted library
    InputStream is = classInApplet.getResourceAsStream(resource);
    copyStream(is, outputFile);
    System.load(outputFile.getAbsolutePath());Why this doesn't really work:
    (a) JMF (com.media.util.Registry) only searches for jmf.properties (which contains the instructions to use the FOBS4JMF plugin) in real folders (i.e. not jars) on the classpath of the local machine. I could extract the jmf.properties to a folder on the local machine, but have no way of making sure that folder would be on the classpath. Calls to "System.getProperty("java.class.path") give varying results - including an empty string on FF/OSX. Even if i could get the classpath somehow, chances are that it wouldn't contain any folders writable under Vista's UAC, which would leave me out of luck.
    JMF also looks for a file called ".jmfdir" in various platform specific locations, and appends the contents of this file to the classpath, so if i could write to that file i'd be golden. This seems like it would work on non windows platforms, because JMF looks for that in "user.home"). However, from what i can tell, on windows, JMF uses a native call to a function called nGetUserHome() to determine where to find .jmfdir - which leads to the second problem...
    (b) the JMF native libraries are loaded through calls to System.loadLibrary(), not System.load(), which means that they have to be on the "java.library.path" in order to be found - and again, I have no way of extracting the libraries to a directory on that path (at least not one writable under Vista UAC). This wouldn't be a problem, as I could pre-load the libraries myself with System.load(), except that JMF throws an exception if it can't find one, and stops trying to do whatever it thinks it needs the library for. Again, not a problem if I use only the FOBS4JMF native code (though i would like to use the DirectAudio renderer on windows) - except that the nGetUserHome() function described above is in a native library (jmutil.dll). So, when com.media.util.Registry.getJMFDir() tries to find ".jmfdir" it first tries to load "jmutil.dll" using System.loadLibrary(). This throws an exception inf "jmutil.dll" is not on the "java.library.path", and com.media.util.Registry.getJMFDir() returns null. Here's the relevant code from com.media.util.Registry.getJMFDir() - with my annotations
    All of these problems are fixable by relatively minor tweaks to the JMF source - but I don't think that's allowed under the SCSL. So if anyone has any, i mean ANY other suggestions, please BRING 'EM ON.
    thanks
    -chris
    EDIT: just for kicks, i checked to see where JMF expects to find .jmfdir on windows - ie the result of nGetUserHome(). At least on XP this seems to be c:\WINDOWS. if it's the same on Vista, then fixing the loadLibrary problem won't help bc I still won't be able to write to this file.
    Edited by: wodenx on May 7, 2010 9:46 AM

    Hi-
    Thanks for responding so quickly.
    As far as the natives go, you might try using the new JNLP embedded applet ability in the plugin2 architecture.I was going to look into that, but decided it wasn't necessary since I can get the FOBS native code to link properly. It's really the registry that's the problem, since without solving that I can't get JMF to USE the FOBS code.
    Can you get it all to work if the JMF installer is invoked? If so, perhaps if you add an installer-desc that calls the normal JMF setup.exe (though that final warning to reboot is both unnecessary and odious).I don't think it would work even with the JMF installer, bc I need to point JMF at the FOBS specific jmf.properties. I might be get it to work by invoking my own installer though, to place my jmf.properties somewhere in the native class path, so that's worth looking at. Thank you. Problem there is that on Vista users would have to elevate to run the applet, which is not ideal.necessary and odious).
    Why do you particularly want to embed media in a web page?The customer may want it. I might be able to convince them to go with JNLP/WebStart, but I think I might have the same problem there. Please correct me if I'm wrong...
    I've also read that there are problems with JMF and JNLP owing to the fact that JMF doesn't recognize the security manager invoked by JNLP, and so gives your program no permissions. Haven't tried it myself yet.
    Thanks again!
    Edited by: wodenx on May 7, 2010 12:07 PM

  • JMF with streaming server like darwin

    Hi all
    I need to know are there any JMF plugin or API to communicate with darwing streaming server or any other RTSP support streaming server?
    I'm on project of video streaming over network
    I was able do the capturing of video using a web cam and streaming using RTP, since JMF support to server side RTP does not RTSP. So I want to know are there any java plugin for darwin streaming server which support RTSP?Thank You

    JMF supports RTSP out of the box.
    [http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/support-rtsp.html]

  • 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.

  • Using JMF with two audio cards

    Hello,
    Is it possible to use two audio cards and have JMF address them independently. I'd like to be able to reference one for recording audio and the other for audio playback (simultaneously).
    Thanks,
    Ben

    It's definately possible, but you may have to interface with JavaSound to do it.
    Theoretically, you should just be able to do javasound://0 for one, and javasound://1 for the other. No guarentees, though. You might have to wrap around JavaSound directly to get that level of control.

  • Distributing JMF with GPL

    Dear all,
    I would like to know if I'm legally allowed to distribute jmf freely with a GPL software ?
    How about codes included in the jmf.
    Cheers,
    AliS

    Hi,
    I am using Java web start to distribute the jmf application. But the problem is the application is written using jmf2.1 I know the new jmf2.1.1a has the jmf customzier to convert the jmf jar file for java web start. Is there a way to do the same using jmf 2.1?
    I have tried to use the customizer on the version 2.1 jar file. But I got this error when I run the application using Java web start:
    IOException in readRegistry: java.io.InvalidClassException: javax.media.Format; Local class not compatible: stream classdesc serialVersionUID=5612854984030969319 local class serialVersionUID=-7351637419493513401

  • JMF with mp3plugin - Mp3 jumps

    Hello, i'm new to this forum
    I have the following problem playing mp3s with the mp3plugin for JMF:
    Most mp3s seems to work, some seems to jump from location to location.
    I have tried most of this in JMStudio (as it's easy and fast to load new mp3s and test them)
    Most Mp3s are played correctly, but some dont really work. They jump from timestamp to timestamp. Sometimes there's a little sound before they start jumping, sometimes they jump instantly below the 1 sec. mark.
    So far, i couldnt guess whats the trigger for this behaviour. It doesnt seem to be the kbps or khz in which they are encoded or the lenght of the tracks.
    One example for this is the wired creative commons cd, which doesn't work.
    Thx for Help
    Edited by: kaoztik on Sep 2, 2008 4:13 PM

    i am working on a project about playing mp3 using jmf,
    could you email me your code to me? or send me some hint
    how you develop your application? thanx
    my email: [email protected]

  • How can I use JMF with IPv6 ? (Help me please)

    I have to develop VoIPv6 application. Then I decide to use Java language and JMF to implement it.
    I tried to run AVTransmit2,AVReceive2 and AVTransmit3,AVReceive3,RTPSocketAdapter, they're work in IPv4 but not work in IPv6.
    So I tried to solve this problem by searching from websites.
    One suggestion is adding the -Djava.net.preferIPv6Addresses=true when using the java command. But it doesn't work.
    Another suggestion is modify the RTPSocketAdapter, I have read this source code but I have no idea to modify it.
    So if anyone has an idea to solve my problem, please advise me please. Your answer will be appreciated.
    ================================================
    I tested on WindowXP (already install IPv6), jdk1.5, JMF2.1.1e.

    Siri is not on the iPad 2.

  • Capturing RTP sent by JMF with Wireshark

    The post was originally at http://forums.sun.com/thread.jspa?threadID=5331241.
    I am using http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/RTPConnector.html as a template in my program. I see the packets sent back and forth using Wireshark but Wireshark doesnt recognize them as RTP packets but UDP. The original thread had an answer about the payload.
    Where is the payload defined in the sample code I am using and how can I change the payload so that Wireshark captures them as RTP? Is it this line:
    ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP); If yes, what should I change it to? Also, I took a look at Wireshark and you can force the UDP packets to decode as RTP but it is not very feasible.
    Thanks.

    If you need the custom RTPConnector to send out UDP packets that show up as RTP packets, I'd recommend reposting the question to the networking forum. That's more of a networking question than it is a JMF one.

  • Using JMF with SWT

    I am developing a eclipse RCP application which makes use of the SWT toolkit. The application would be playing some media files. So i would like to make use of the JMF media player within SWT . How can I do this?

    Ok it's all a matter of what run as SWT application do
    it sets -Djava.library.path to the path of the SWT dlls
    so we can make it point to the jmf Dlls path
    goto Run..>Arguments>VM Arguments
    then add
    -Djava.library.path=.\\jmfdllswhere jmfdlls is folder contains ALL DLLs inside your project
    or easily if you have installed jmf by installer
    -Djava.library.path=C:\\WINDOWS\\system32I tried it it works
    Note : this is applied when using any library that use native codewith swt e.g. jacob
    this solution is from this thread
    http://eclipsezone.com/forums/thread.jspa?threadID=80055
    And this
    http://eclipsezone.com/forums/thread.jspa?threadID=28020

Maybe you are looking for