Video receiving applet in JMF

Hello,
I'm creating a webcam based video channel system but i have problems receiving the signal from the pc in the server. I send it using JMStudio but i'm unable to interpret.
This is the code i use:
import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.util.Vector;
import javax.media.*;
import javax.media.rtp.*;
import javax.media.rtp.event.*;
import javax.media.rtp.rtcp.*;
import javax.media.protocol.*;
import javax.media.protocol.DataSource;
import javax.media.format.AudioFormat;
import javax.media.format.VideoFormat;
import javax.media.Format;
import javax.media.format.FormatChangeEvent;
import javax.media.control.BufferControl;
public class RecibeVideoApplet extends Applet implements ReceiveStreamListener, SessionListener
     String ip = "my ip"; // Estas direcciones variaran dependiendo del transmisor
     int puerto =0000;
     String puerto1;
     RTPManager rtpm = RTPManager.newInstance();
     Object datoSinc = new Object();
     boolean datoRecibido = false;
     Panel panelCam = new Panel(new BorderLayout());
     Button cerrar =new Button("Salir");
     Player player=null;
     // Funcion que inicializa el Applet
     public void init()
          // Recogemos el parametro de la pagina HTML
          ip = getParameter("IP");
          //puerto1 = getParameter("PUERTO");
          ///puerto = Integer.valueOf(puerto1).intValue();
          try
               System.out.println("Ip" +ip);
               InetAddress dirIp = InetAddress.getByName(ip);
               System.out.println("dirIP" +dirIp);
               SessionAddress dirLocal = new SessionAddress(InetAddress.getByName("000.000.000.000"),puerto);
               System.out.println("dirLocal" +dirLocal);
               SessionAddress dirDest = new SessionAddress(dirIp,puerto);
               rtpm.addSessionListener(this);
               rtpm.addReceiveStreamListener(this);
               rtpm.initialize(dirLocal);
               rtpm.addTarget(dirDest);          
          catch (Exception e)
               System.out.println("No se pudo crear la sesion RTP" + e.getMessage());
          // Esperamos a que lleguen los datos
          long then = System.currentTimeMillis();
          long periodoEspera = 60000; // esperamos como maximo 60segundos
          try{
          synchronized (datoSinc)
               while (!datoRecibido &&
                    System.currentTimeMillis() - then < periodoEspera)
               if (!datoRecibido)
                    System.err.println("Esperando datos RTP...");
               datoSinc.wait(1000);
          catch (Exception e) {}
          if (!datoRecibido) {
          System.err.println("No se ha recibido ningn dato RTP");
     // Funciones que esperan a que llegue un evento y avisan de ello
     public synchronized void update (SessionEvent evento)
          if (evento instanceof NewParticipantEvent)
               Participant participante = ((NewParticipantEvent)evento).getParticipant();
               System.out.println("Acaba de unirse un nuevo participante:"+ participante.getCNAME());
     public synchronized void update (ReceiveStreamEvent evento)
          RTPManager rtpm = (RTPManager)evento.getSource();
          Participant participante =evento.getParticipant();
          ReceiveStream stream = evento.getReceiveStream();
          if (evento instanceof NewReceiveStreamEvent)
               try
                    stream = ((NewReceiveStreamEvent)evento).getReceiveStream();
                    DataSource ds =stream.getDataSource();
                    // Creamos el player para visualizar el video
                    player = Manager.createRealizedPlayer(ds);
                    if (player == null)
                         return;
                    // Comenzamos la transmision
                    player.start();
                    // Cogemos el componente visual para a�adirlo al panel
                    Component comp;
               if ((comp = player.getVisualComponent()) == null)
                    return;
               panelCam.add("Center", comp);
               panelCam.add("South", cerrar);
               add("Center",panelCam);
               this.setSize(800,800);
               this.setVisible(true);
               //Avisamos al metodo inicializar de que hemos recibido datos
               synchronized (datoSinc)
                    datoRecibido = true;
                    datoSinc.notifyAll();
               catch (Exception e)
                    System.out.println("Error: " + e.getMessage());
                    return;
     // Metodo que utilizamos para poder cerrar la transmisi�n mediante un bot�n
     public boolean action(Event evt,Object arg)
          if(evt.target.equals(cerrar))
               close();
          else
          return super.action (evt,arg);
          return true;
     // Metodo para cerrar el player de la transmision
     public void close()
     try
          player.close();
          rtpm.removeTargets("Cerrando sesion desde RecibeVideo");
          rtpm.dispose();
          rtpm = null;
     catch (Exception e)
               System.out.println("No se ha podido cerrar correctamente");
     //Metodo para destruir el applet
     public void destroy()
The names are in spanish but i think that the main function can be understood
and this is the output i get from the webpage:
java.lang.Error: Unresolved compilation problems:
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     ReceiveStreamListener cannot be resolved to a type
     SessionListener cannot be resolved to a type
     RTPManager cannot be resolved to a type
     RTPManager cannot be resolved
     Player cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     rtpm cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     SessionEvent cannot be resolved to a type
     NewParticipantEvent cannot be resolved to a type
     Participant cannot be resolved to a type
     NewParticipantEvent cannot be resolved to a type
     ReceiveStreamEvent cannot be resolved to a type
     RTPManager cannot be resolved to a type
     RTPManager cannot be resolved to a type
     Participant cannot be resolved to a type
     ReceiveStream cannot be resolved to a type
     NewReceiveStreamEvent cannot be resolved to a type
     NewReceiveStreamEvent cannot be resolved to a type
     DataSource cannot be resolved to a type
     player cannot be resolved
     Manager cannot be resolved
     player cannot be resolved
     player cannot be resolved
     player cannot be resolved
     player cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     at RecibeVideoApplet.<init>(RecibeVideoApplet.java:12)
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
     at java.lang.reflect.Constructor.newInstance(Unknown Source)
     at java.lang.Class.newInstance0(Unknown Source)
     at java.lang.Class.newInstance(Unknown Source)
     at sun.applet.AppletPanel.createApplet(Unknown Source)
     at sun.plugin.AppletViewer.createApplet(Unknown Source)
     at sun.applet.AppletPanel.runLoader(Unknown Source)
     at sun.applet.AppletPanel.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)
java.lang.Error: Unresolved compilation problems:
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     The import javax.media cannot be resolved
     ReceiveStreamListener cannot be resolved to a type
     SessionListener cannot be resolved to a type
     RTPManager cannot be resolved to a type
     RTPManager cannot be resolved
     Player cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     SessionAddress cannot be resolved to a type
     rtpm cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     SessionEvent cannot be resolved to a type
     NewParticipantEvent cannot be resolved to a type
     Participant cannot be resolved to a type
     NewParticipantEvent cannot be resolved to a type
     ReceiveStreamEvent cannot be resolved to a type
     RTPManager cannot be resolved to a type
     RTPManager cannot be resolved to a type
     Participant cannot be resolved to a type
     ReceiveStream cannot be resolved to a type
     NewReceiveStreamEvent cannot be resolved to a type
     NewReceiveStreamEvent cannot be resolved to a type
     DataSource cannot be resolved to a type
     player cannot be resolved
     Manager cannot be resolved
     player cannot be resolved
     player cannot be resolved
     player cannot be resolved
     player cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     rtpm cannot be resolved
     at RecibeVideoApplet.<init>(RecibeVideoApplet.java:12)
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
     at java.lang.reflect.Constructor.newInstance(Unknown Source)
     at java.lang.Class.newInstance0(Unknown Source)
     at java.lang.Class.newInstance(Unknown Source)
     at sun.applet.AppletPanel.createApplet(Unknown Source)
     at sun.plugin.AppletViewer.createApplet(Unknown Source)
     at sun.applet.AppletPanel.runLoader(Unknown Source)
     at sun.applet.AppletPanel.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)
If anyone knows how to solve the problems i have, please let me know.
Thank you

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.

Similar Messages

  • Question - applet using JMF for playing .mov

    I develop an applet using JMF for playing .mov. It works fine, and the applet starts normally. Even my applet works fine from other computers in our LAN (The applet runs ok without JMF). But only on one PC it doesn't work and I get the following message
    Failed to configure: com.sun.media.PlaybackEngine@a7c45e
    Bad header in the media: moov atom not present
    Error: Unable to realize com.sun.media.PlaybackEngine@a7c45e
    FATAL ERROR: Failed to realize: failed to parse the input media.
    Exception in thread "JMF thread: SendEventQueue: com.sun.media.content.unknown.Handler" java.lang.Error: Failed to realize: failed to parse the input media.
    at PlayerApplet.Fatal(PlayerApplet.java:201)
    at PlayerApplet.controllerUpdate(PlayerApplet.java:191)
    at com.sun.media.BasicController.dispatchEvent(BasicController.java:1254)
    at com.sun.media.SendEventQueue.processEvent(BasicController.java:1286)
    at com.sun.media.util.ThreadedEventQueue.dispatchEvents(ThreadedEventQueue.java:65)
    at com.sun.media.util.ThreadedEventQueue.run(ThreadedEventQueue.java:92)
    My html:
    <html>
    <head><title>PlayerApplet</title></head>
    <body>
    <applet code="PlayerApplet.class" archive="fobs4jmf.jar, customizer.jar, jmf.jar, mp3plugin.jar, sound.jar, multiplayer.jar, mediaplayer.jar" width=640 height=510>
    <param name=file value="safexmas.mov">
    </applet>
    </body>
    </html>
    Anyone can help me?
    Thanks for your time

    It started to work but I had to install fobs4jmf on the client computer.
    And put .dll to windows/system33 directory. But how can I play video using applet in browser without installing any software on the client machine?

  • Codes for audio video receiver class

    I am currently writting an audio and video receiver for my project based on AVReceive3, it works but i can only get Video only, everything seems to be normal, i dont see why i am not getting audio. My transmitter is working fine and sending both streams.
    If anyone can spot the error or mistake i a making, pleaase let me know as soon as possible.
    my email address is [email protected]
    public class AudVidReceive extends Frame implements ActionListener,ReceiveStreamListener,SessionListener,ControllerListener
    // Input MediaLocator
    // Can be a file or http or capture source
    private MediaLocator alocator;
    MediaLocator vlocator,vloct,aloct;
    private String ipAddress;
    private int portBase;
    Button transtop,transtart,recstop,recstart;
    Component controlPanel, visualComponent;
    //For Receiving Media Stream
    String sessions[] = null;
    SessionManager mgrs[] = null;
    Vector playerWindows = null;
    boolean dataReceived = false;
    Object dataSync = new Object();
    private Processor processor = null;
    Player player=null;
    Format fmt=null;
    private SessionManager rtpMgrs[];
    private DataSource dataOutput = null;
    DataSource ads=null;
    DataSource vds=null;
    DataSource source[];
    DataSource m=null;
    public AudVidReceive()
    super("Audio Video Receive");
    recstart=new Button("StartReceiving");
    //recstop=new Button("Stop Receiving");
    add(recstart);
    recstart.setBounds(80,250,100,30);
    recstart.addActionListener(this);
    setLayout(null);
    setSize(400,300);
    setVisible(true);
    //this.sessions=sessions;
    public void actionPerformed(ActionEvent e)
    Button b=(Button)e.getSource();
    String ac=e.getActionCommand();
    if(ac.equalsIgnoreCase("StartReceiving"))
    boolean flag;
    boolean st=initialize();
    if(!st)
    System.err.println("Failed to Realize the Sessions ");
    System.exit(-1);
    flag=isDone();
    try{
    while(!flag)
    Thread.sleep(1000);
    }catch(Exception e1)
    e1.printStackTrace();
    //Initialize the Session for Receiving the Incomming Stream
    protected boolean initialize() {
    try {
    InetAddress ipAddr;
    SessionAddress localAddr = new SessionAddress();
    SessionAddress destAddr;
    String sessions[]={"192.168.2.143/42060"};
    mgrs = new com.sun.media.rtp.RTPSessionMgr[sessions.length];
    playerWindows = new Vector();
    SessionLabel session;
    // Open the RTP sessions.
    for (int i = 0; i < sessions.length; i++) {
    // Parse the session addresses.
    try {
    session = new SessionLabel(sessions);
    } catch (IllegalArgumentException e) {
    System.err.println("Failed to parse the session address given: " + sessions[i]);
    return false;
    System.err.println(" - Open RTP session for: addr: " + session.addr + " port: " + session.port + " ttl: " + session.ttl);
    mgrs[i] = new com.sun.media.rtp.RTPSessionMgr();
    mgrs[i].addSessionListener(this);
    mgrs[i].addReceiveStreamListener(this);
    ipAddr = InetAddress.getByName(session.addr);
    destAddr = new SessionAddress(ipAddr, session.port,
    ipAddr, session.port+1);
    mgrs[i].initSession(localAddr, getSDES(mgrs[i]), .05, .25);
    // You can try out some other buffer size to see
    // if you can get better smoothness.
    BufferControl bc = (BufferControl)mgrs[i].getControl("javax.media.control.BufferControl");
    if (bc != null)
    bc.setBufferLength(350);
    mgrs[i].startSession(destAddr, session.ttl, null);
    } catch (Exception e){
    System.err.println("Cannot create the RTP Session: " + e.getMessage());
    return false;
    // Wait for data to arrive before moving on.
    long then = System.currentTimeMillis();
    long waitingPeriod = 120000; // wait for a maximum of 30 secs.
    try{
    synchronized (dataSync)
    while (!dataReceived && System.currentTimeMillis() - then < waitingPeriod) {
    if (!dataReceived)
    System.err.println(" - Waiting for RTP data to arrive...");
    dataSync.wait(1000);
    }catch (Exception e) {}
    if (!dataReceived) {
    System.err.println("No RTP data was received.");
    close();
    return false;
    return true;
    * Find out the host info.
    String cname = null;
    private SourceDescription[] getSDES(SessionManager mgr)
    SourceDescription[] desclist = new SourceDescription[3];
    if (cname == null)
    cname = mgr.generateCNAME();
    desclist[0] = new
    SourceDescription(SourceDescription.SOURCE_DESC_NAME,
    System.getProperty("user.name"),
    1,
    false);
    desclist[1] = new
    SourceDescription(SourceDescription.SOURCE_DESC_CNAME,
    cname,
    1,
    false);
    desclist[2] = new
    SourceDescription(SourceDescription.SOURCE_DESC_TOOL,
    "AVReceive powered by JMF",
    1,
    false);
    return desclist;
    //Check Player window sizing
    public boolean isDone() {
    return playerWindows.size() == 0;
    * Close the players and the session managers.
    protected void close()
    for (int i = 0; i < playerWindows.size(); i++)
    try {
    ((PlayerWindow)playerWindows.elementAt(i)).close();
    } catch (Exception e) {}
    playerWindows.removeAllElements();
    // close the RTP session.
    for (int i = 0; i < mgrs.length; i++) {
    if (mgrs[i] != null) {
    mgrs[i].closeSession("Closing session from AudVidReceive");
    mgrs[i] = null;
    //Find the player
    PlayerWindow find(Player p) {
    for (int i = 0; i < playerWindows.size(); i++) {
    PlayerWindow pw = (PlayerWindow)playerWindows.elementAt(i);
    if (pw.player == p)
    return pw;
    return null;
    //Find whether the Player is receiving the Stream
    PlayerWindow find(ReceiveStream strm) {
    for (int i = 0; i < playerWindows.size(); i++) {
    PlayerWindow pw = (PlayerWindow)playerWindows.elementAt(i);
    if (pw.stream == strm)
    return pw;
    return null;
    * SessionListener.
    public synchronized void update(SessionEvent evt) {
    if (evt instanceof NewParticipantEvent) {
    Participant p = ((NewParticipantEvent)evt).getParticipant();
    System.err.println(" - A new participant had just joined: " + p.getCNAME());
    * ReceiveStreamListener
    public synchronized void update( ReceiveStreamEvent evt) {
    SessionManager mgr = (SessionManager)evt.getSource();
    Participant participant = evt.getParticipant(); // could be null.
    ReceiveStream stream = evt.getReceiveStream(); // could be null.
    if (evt instanceof RemotePayloadChangeEvent) {
    System.err.println(" - Received an RTP PayloadChangeEvent.");
    System.err.println("Sorry, cannot handle payload change.");
    System.exit(0);
    else if (evt instanceof NewReceiveStreamEvent) {
    try {
    stream = ((NewReceiveStreamEvent)evt).getReceiveStream();
    DataSource ds = stream.getDataSource();
    // Find out the formats.
    RTPControl ctl = (RTPControl)ds.getControl("javax.media.rtp.RTPControl");
    if (ctl != null){
    System.err.println(" - Recevied new RTP stream: " + ctl.getFormat());
    } else
    System.err.println(" - Recevied new RTP stream");
    if (participant == null)
    System.err.println(" The sender of this stream had yet to be identified.");
    else {
    System.err.println(" The stream comes from: " + participant.getCNAME());
    // create a player by passing datasource to the Media Manager
    Player p = javax.media.Manager.createPlayer(ds);
    if (p == null)
    return;
    p.addControllerListener(this);
    p.realize();
    PlayerWindow pw = new PlayerWindow(p, stream);
    playerWindows.addElement(pw);
    // Notify intialize() that a new stream had arrived.
    synchronized (dataSync) {
    dataReceived = true;
    dataSync.notifyAll();
    } catch (Exception e) {
    System.err.println("NewReceiveStreamEvent exception " + e.getMessage());
    return;
    }//above catch closing if
    else if (evt instanceof StreamMappedEvent) {
    if (stream != null && stream.getDataSource() != null) {
    DataSource ds = stream.getDataSource();
    // Find out the formats.
    RTPControl ctl = (RTPControl)ds.getControl("javax.media.rtp.RTPControl");
    System.err.println(" - The previously unidentified stream ");
    if (ctl != null)
    System.err.println(" " + ctl.getFormat());
    System.err.println(" had now been identified as sent by: " + participant.getCNAME());
    else if (evt instanceof ByeEvent) {
    System.err.println(" - Got \"bye\" from: " + participant.getCNAME());
    PlayerWindow pw = find(stream);
    if (pw != null) {
    pw.close();
    playerWindows.removeElement(pw);
    }// end of this method
    * ControllerListener for the Players.
    public synchronized void controllerUpdate(ControllerEvent ce) {
    Player p = (Player)ce.getSourceController();
    if (p == null)
    return;
    // Get this when the internal players are realized.
    if (ce instanceof RealizeCompleteEvent) {
    PlayerWindow pw = find(p);
    if (pw == null) {
    // Some strange happened.
    System.err.println("Internal error!");
    System.exit(-1);
    pw.initialize();
    pw.setVisible(true);
    p.start();
    if (ce instanceof ControllerErrorEvent) {
    p.removeControllerListener(this);
    PlayerWindow pw = find(p);
    if (pw != null) {
    pw.close();
    playerWindows.removeElement(pw);
    System.err.println("AVReceive internal error: " + ce);
    * A utility class to parse the session addresses.
    class SessionLabel {
    public String addr = null;
    public int port;
    public int ttl = 1;
    SessionLabel(String session) throws IllegalArgumentException {
    int off;
    String portStr = null, ttlStr = null;
    if (session != null && session.length() > 0) {
    while (session.length() > 1 && session.charAt(0) == '/')
    session = session.substring(1);
    // Now see if there's a addr specified.
    off = session.indexOf('/');
    if (off == -1) {
    if (!session.equals(""))
    addr = session;
    } else {
    addr = session.substring(0, off);
    session = session.substring(off + 1);
    // Now see if there's a port specified
    off = session.indexOf('/');
    if (off == -1) {
    if (!session.equals(""))
    portStr = session;
    } else {
    portStr = session.substring(0, off);
    session = session.substring(off + 1);
    // Now see if there's a ttl specified
    off = session.indexOf('/');
    if (off == -1) {
    if (!session.equals(""))
    ttlStr = session;
    } else {
    ttlStr = session.substring(0, off);
    if (addr == null)
    throw new IllegalArgumentException();
    if (portStr != null) {
    try {
    Integer integer = Integer.valueOf(portStr);
    if (integer != null)
    port = integer.intValue();
    } catch (Throwable t) {
    throw new IllegalArgumentException();
    } else
    throw new IllegalArgumentException();
    if (ttlStr != null) {
    try {
    Integer integer = Integer.valueOf(ttlStr);
    if (integer != null)
    ttl = integer.intValue();
    } catch (Throwable t) {
    throw new IllegalArgumentException();
    * GUI classes for the Player.
    class PlayerWindow extends Frame {
    Player player;
    ReceiveStream stream;
    PlayerWindow(Player p, ReceiveStream strm) {
    player = p;
    stream = strm;
    public void initialize() {
    add(new PlayerPanel(player));
    public void close() {
    player.close();
    setVisible(false);
    dispose();
    public void addNotify() {
    super.addNotify();
    pack();
    * GUI classes for the Player.
    class PlayerPanel extends Panel {
    Component vc, cc;
    PlayerPanel(Player p) {
    setLayout(new BorderLayout());
    if ((vc = p.getVisualComponent()) != null)
    add("Center", vc);
    if ((cc = p.getControlPanelComponent()) != null)
    add("South", cc);
    public Dimension getPreferredSize() {
    int w = 0, h = 0;
    if (vc != null) {
    Dimension size = vc.getPreferredSize();
    w = size.width;
    h = size.height;
    if (cc != null) {
    Dimension size = cc.getPreferredSize();
    if (w == 0)
    w = size.width;
    h += size.height;
    if (w < 160)
    w = 160;
    return new Dimension(w, h);
    public static void main(String [] args) {
    Format fmt = null;
    int i = 0;
    AudVidReceive at1 = new AudVidReceive();
    System.err.println("Start Receiving incoming Streams ");
    try {
    Thread.currentThread().sleep(60000);
    } catch (InterruptedException ie) {
    ie.printStackTrace();

    I have to use RTP and RTSP for transferring the
    audio/video streams in real time.
    How I can sen and receive RTP packets.
    How can I make the RTP Player.
    What is the role of JMF in it.
    Please suggest me and provide me the codes if
    possible.
    Thanks alot
    shobhit vermaThere are two ways using which you can send and recieve packets using rtp. One without using the SessionManager and the other with.
    1.) Not using the SessionManager makes things easy for you but it offers very little flexibility to you. You can do this by just specifying a medialocator pointing to the specific url
    2.) Using the SessionManager is what is usually suggested. This process is more complex. First you have to instantiate a RTPSessionMgr to a SessionManager reference using which you can send and receive streams to and from the network. The process is more involved than this and is suggest you read some tutorials to get a better understanding, than me explaining to you the entire process.
    Message was edited by:
    qUesT_foR_knOwLeDge

  • Video recording applet

    Hi all,
    I have to create an applet which can record a video/audio from webcam and upload it to the server afterwards.
    Can anyone help me create this?(JMF)
    Or point me to a link where I can get some help regarding same.
    Any help would be appreciated.
    Regards,
    Vikram Chhetry

    is it required for the client to have jmf installed on its machine.Obviously yaar,once you scroll down the article configuration ke baare mein usne discuss kiya tha..
    David Fischer's application is not able to detect my
    web cam. I m using quantum's webcam.well according to his point of view oo bandaa keh raha hein ki
    Most of USB cameras.Kya aap USB cam hee use kaar rahe ho kya ??
    why don't u give it a try with tht...
    and the better advice which i can give it you use make a Swing application using JMF ensure tht everything is working fine.
    Agaar woh theek raha toe applet ka zayadaa problem hooni nahin chahiye....
    I wanna float video recording applet, Wat do u mean by float video applet

  • Not able to recognize any video/audio devices using jmf and java soun

    Hi ,
    I need one help from your side.
    Here I am expecting some clarifications from you. Before that let you my environement.
    My working environment :
    Eclipse tool and added jmf jar to my project I did not do any thing more.
    If any thing I need to do just let me know. My target platform is MAC & UBUNTU.
    Please bare with my questions.
    1) I am not able to recognize any video/audio devices using jmf and java sound APIs on My system.
    ( I checked with the app mentioned in the http://www.java-forums.org/new-java/11201-jmf-cannot-connect-device.html )
    Do we need any administrives rights for our working PC.
    What is the procedure/ setup I need to follow from a java application to enable particular audio/video device since I dont about end-user system setup right.
    If possible send some sample code to recognize /r detect audio device ( voice input ). It should run on both MAC and UBUNTU.
    2) I run the one sample audio recording application of this link (http://www.jsresources.org/examples/SimpleAudioRecorder.java.html) which is provided by YOU.
    I got output audio file and able to hear voice on UBUNTU system but not able to hear voice on MAC system.
    I heared that default line in ( audio setup of the sys) is wont take any voice data on MAC.Why I made this stmt means we are getting false when using isSupported methods of JAVA SOUND API.
    ( like for TragetdataLine ...i,e, all ports are getting false)
    I have one sample audio recording app implemented by QUICKTIME API. In this case also he taking audio ftom device only using quicetime API.
    With that we are able to record and hear audio ( voice input --> not line in , external device we added some thing like SSB...)
    3) In case of Video capturing DataSource, Streams are implemented by PullBufferDataSource , PullBufferStream intefaces used.
    In case of Audio capturing DataSource, Streams are implemented by PushBufferDataSource, PushBufferStream intefaces used.
    Can you explain the reasons ? I gone through API but i am not clear.
    HOPE I WILL BE CLARIFIED EVERY THING FROM YOU.
    Thanks
    RamaRao.G

    Hi ,
    I need one help from your side.
    Here I am expecting some clarifications from you. Before that let you my environement.
    My working environment :
    Eclipse tool and added jmf jar to my project I did not do any thing more.
    If any thing I need to do just let me know. My target platform is MAC & UBUNTU.
    Please bare with my questions.
    1) I am not able to recognize any video/audio devices using jmf and java sound APIs on My system.
    ( I checked with the app mentioned in the http://www.java-forums.org/new-java/11201-jmf-cannot-connect-device.html )
    Do we need any administrives rights for our working PC.
    What is the procedure/ setup I need to follow from a java application to enable particular audio/video device since I dont about end-user system setup right.
    If possible send some sample code to recognize /r detect audio device ( voice input ). It should run on both MAC and UBUNTU.
    2) I run the one sample audio recording application of this link (http://www.jsresources.org/examples/SimpleAudioRecorder.java.html) which is provided by YOU.
    I got output audio file and able to hear voice on UBUNTU system but not able to hear voice on MAC system.
    I heared that default line in ( audio setup of the sys) is wont take any voice data on MAC.Why I made this stmt means we are getting false when using isSupported methods of JAVA SOUND API.
    ( like for TragetdataLine ...i,e, all ports are getting false)
    I have one sample audio recording app implemented by QUICKTIME API. In this case also he taking audio ftom device only using quicetime API.
    With that we are able to record and hear audio ( voice input --> not line in , external device we added some thing like SSB...)
    3) In case of Video capturing DataSource, Streams are implemented by PullBufferDataSource , PullBufferStream intefaces used.
    In case of Audio capturing DataSource, Streams are implemented by PushBufferDataSource, PushBufferStream intefaces used.
    Can you explain the reasons ? I gone through API but i am not clear.
    HOPE I WILL BE CLARIFIED EVERY THING FROM YOU.
    Thanks
    RamaRao.G

  • Samsung Galaxy S4 T-Mobile Video Received is reall...

    Month or two ago, i had not issues with video received thru Skype but now it comes really blurry.
    My internet speed tests at 20mbps down, 15mbps upload.
    Everything works great but Skype.
    I am using Skype for Android 5.1.0.56619
    Any ideas or suggestions would help.

    Month or two ago, i had not issues with video received thru Skype but now it comes really blurry.
    My internet speed tests at 20mbps down, 15mbps upload.
    Everything works great but Skype.
    I am using Skype for Android 5.1.0.56619
    Any ideas or suggestions would help.

  • No sound connecting Qosmio G30 via HDMI to audio/video receiver

    When I connect my Qosmio G30-177 via HDMI cable to my audio/video receiver using Windows Vista Ultimate I get no sound but excellent video.
    When I connect the DVD recorder to the receiver (also via HDMI-cable) the sound is o.k.
    Do I have to use the s/pdif interface instead of HDMI to transmit the sound to the receiver or is it also possible via HDMI?
    Sound driver:
    Sigma tel high definition audio codec
    15.12.2006
    6.10.5324.0

    Hi
    Im not a audio expert but in my knowledge the HDMI transmit the audio and video signals.
    The HDMI 1.0 and 1.1 support Dolby DigitalDTS audio format
    The HDMI 1.2 supports Dolby DigitalDTS and DVD-Audio format
    The HDMI 1.3 supports Dolby DigitalDTS, DVD-Audio and SACD audio formats.
    All HDMI standards support a Typ A (19pol) jacks

  • Turn on audio for video received in an email

    How do I turn on audio for video received in an email? My audio works in other situations, just not with an emailed clip.

    These documents are opening in a window, correct? Along the top of it, assuming you are on Windows, there should be a bar with a title in it, just like most apps.
    It sounds to me as if you are being send PDF files, not Word documents. Why are you sure they are Word documents. IGNORE THE WORD ICON, that would be part of the problem.

  • Harrsment calls from VIDEO RECEIVED! PLAY MESSAGE ...

    no matter how many times i decline and block this caller contiues to calls at all hours of the day. i have never answered the call. Missed call from VIDEO RECEIVED! PLAY MESSAGE AT VIDMS.COM.

    if you block a certain user, that user should not be able to contact you again in any way.  I think in your case, those scammers/spammers might be using another Skype account with the same or similar display name.  I think you can consider adjusting your privacy settings to allow calls from people in your contact list only to avoid receiving such unwanted calls again.
    IF YOU FOUND OUR POST USEFUL THEN PLEASE GIVE "KUDOS". IF IT HELPED TO FIX YOUR ISSUE PLEASE MARK IT AS A "SOLUTION" TO HELP OTHERS. THANKS!
    ALTERNATIVE SKYPE DOWNLOAD LINKS | HOW TO RECORD SKYPE VIDEO CALLS | HOW TO HANDLE SUSPICIOS CALLS AND MESSAGES
    SEE MORE TIPS, TRICKS, TUTORIALS AND UPDATES in
    | skypefordummies.blogspot.com | 

  • Video not played using JMF while tramitting stream over RTP

    video not played using JMF while tramitting stream over RTP
    I am using code to tranmit video using RTP using JMF and i am able to successfully get the video on client side
    Code to send the video over rtp
    http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/AVTransmit2.java
    code to recieve video over rtp
    http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/AVReceive.html#source
    My problem is i am not able to play video in AVTransmit2.java.
    If i create a player using datasouce, eigther i get player already occupied or a black screen.
    please help me running the video on Transmit side as well.
    NOTE: i am using web cam for video source
    Edited by: qasitouch on Dec 23, 2009 5:55 AM

    I am not getting any error on consol, rather video is not displayed on media screen but black rectangle.
    On Transmitter
         // Try to create a processor to handle the input media locator
         processor = Manager.createProcessor(ds);
    createPlayer(Manager.createCloneableDataSource(ds)); // here i am craeting a player to show the video on transmitter end aswell.
    Player code:
         private void createPlayer(DataSource ds) {
              try {
                   Player player;
                   if(processor!=null)
                        System.out.println("processor: " + processor);
                        player = processor;
                   }else{
                        System.out.println("null is processor");
                   player = Manager.createRealizedPlayer(ds);
                   Component video = player.getVisualComponent();
                   JFrame mediaFrame = new JFrame("Camera Screen");
                   mediaFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   mediaFrame.add(video);
                   mediaFrame.setSize(300, 300);
                   mediaFrame.setVisible(true);
                   player.realize();
                   player.start();
                   player.prefetch();
              } catch (NoPlayerException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (CannotRealizeException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (NotRealizedError e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (Exception e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    I am not getting any error and not running on the same side. My problem is showing video on Tranmitter end.
    Using above code i can create player and a black screen is showing, i am ubable to find, why video is not played in screen.

  • Show video while applet loading

    Hi;
    Is it possible to play a video during applet loading? The video format may be swf or flv anything. I can show an animated gif by using param tag. But i want to play a video.
    Thanks in advance.
    Edited by: akk512 on Jun 10, 2010 4:54 AM

    Not with current applet architecture, no.
    But you might be able to do something clever with showing/hiding divs and javascript ...

  • Jmf applets without jmf installed?

    i completed an application in which i can receive and broadcast audio and video over the lan/internet.
    but i have a restriction now. this only works if the target computer has jmf installed in it.
    I am actually developing an application which works like a live tv on the internet. but as i said, it is restricted only to the computer with jmf installed.
    can others who dont have the jmf installed get the applets running? i heard that i can compress the class files in .jar format and send it. but i dont know the method. and i also dont know if its going to workout.
    once again: if u go to my website, an applet loads and you have to watch my broadcast. i did the part but i am not able to integrate it into the pc's which dont have jmf installed.
    any kind of idea would be greatly appreciated.
    thanks

    As I remember there were some topics exactly matches your (even a name).
    You can just read them - they were answered.
    RTFM.
    Read forum below.
    You cant run JMF without installing.
    You can make a part of JMF to be "installed".
    Search forum.

  • CTD bug in simple video streaming applet.

    I'm trying to write a simple applet to use JMF to allow an end-user to view a video stream that's being served up by VLC. It doesn't have to look immensely pretty (in fact, streamlined is what I want most). I swiped some code from the jicyshout project (http://jicyshout.sourceforge.net) which handles streaming MP3s, and borrowed a framework for an applet from one of Sun's example applets for the JMF.
    Here's my code so far:
    ** begin file SimpleVideoDataSource.java **
    import java.lang.String;
    import java.net.*;
    import java.io.*;
    import java.util.Properties;
    import javax.media.*;
    import javax.media.protocol.*;
    /* The SeekableStream and DataSource tweaks are based on the code from
    * jicyshout (jicyshout.sourcefourge.net), which was written by Chris Adamson.
    * The code was simplified (no need for mp3 metadata here), cleaned up, then
    * extended for our puposes.
    * This is a DataSource using a SeekableStream suitable for
    * streaming video using the default parser supplied by JMF.
    public class SimpleVideoDataSource extends PullDataSource {
    protected MediaLocator myML;
    protected SeekableInputStream[] seekStreams;
    protected URLConnection urlConnection;
    // Constructor (trivial).
    public SimpleVideoDataSource (MediaLocator ml) throws MalformedURLException {
    super ();
    myML = ml;
    URL url = ml.getURL();
    public void connect () throws IOException {
    try {
    URL url = myML.getURL();
    urlConnection = url.openConnection();
    // Make the stream seekable, so that the JMF parser can try to parse it (instead
    // of throwing up).
    InputStream videoStream = urlConnection.getInputStream();
    seekStreams = new SeekableInputStream[1];
    seekStreams[0] = new SeekableInputStream(videoStream);
    } catch (MalformedURLException murle) {
    throw new IOException ("Malformed URL: " + murle.getMessage());
    } catch (ArrayIndexOutOfBoundsException aioobe) {
    fatalError("Array Index OOB: " + aioobe);
    // Closes up InputStream.
    public void disconnect () {
    try {
    seekStreams[0].close();
    } catch (IOException ioe) {
    System.out.println ("Can't close stream. Ew?");
    ioe.printStackTrace();
    // Returns just what it says.
    public String getContentType () {
    return "video.mpeg";
    // Does nothing, since this is a stream pulled from PullSourceStream.
    public void start () {
    // Ditto.
    public void stop () {
    // Returns a one-member array with the SeekableInputStream.
    public PullSourceStream[] getStreams () {
    try {
    // **** This seems to be the problem. ****
    if (seekStreams != null) {
    return seekStreams;
    } else {
    fatalError("sourceStreams was null! Bad kitty!");
    return seekStreams;
    } catch (Exception e) {
    fatalError("Error in getStreams(): " + e);
    return seekStreams;
    // Duration abstract stuff. Since this is a theoretically endless stream...
    public Time getDuration () {
    return DataSource.DURATION_UNBOUNDED;
    // Controls abstract stuff. No controls supported here!
    public Object getControl (String controlName) {
    return null;
    public Object[] getControls () {
    return null;
    void fatalError (String deathKnell) {
    System.err.println(":[ Fatal Error ]: - " + deathKnell);
    throw new Error(deathKnell);
    ** end file SimpleVideoDataSource.java **
    ** begin file SeekableInputStream.java **
    import java.lang.String;
    import java.net.*;
    import java.io.*;
    import java.util.Properties;
    import javax.media.*;
    import javax.media.protocol.*;
    /* The SeekableStream and DataSource tweaks are based on the code from
    * jicyshout (jicyshout.sourcefourge.net), which was written by Chris Adamson.
    * The code was simplified (no need for mp3 metadata here), cleaned up, then
    * extended for our puposes.
    /* This is an implementation of a SeekableStream which extends a
    * BufferedInputStream to basically fake JMF into thinking that
    * the stream is seekable, when in fact it's not. Basically, this
    * will keep JMF from puking over something it expects but can't
    * actually get.
    public class SeekableInputStream extends BufferedInputStream implements PullSourceStream, Seekable {
    protected int tellPoint;
    public final static int MAX_MARK = 131072; // Give JMF 128k of data to "play" with.
    protected ContentDescriptor unknownCD;
    // Constructor. Effectively trivial.
    public SeekableInputStream (InputStream in) {
    super (in, MAX_MARK);
    tellPoint = 0;
    mark (MAX_MARK);
    unknownCD = new ContentDescriptor ("unknown");
    // Specified size constructor.
    public SeekableInputStream (InputStream in, int size) {
    super (in, Math.max(size, MAX_MARK));
    tellPoint = 0;
    mark(Math.max(size, MAX_MARK));
    unknownCD = new ContentDescriptor ("unknown");
    // Reads a byte and increments tellPoint.
    public int read () throws IOException {
    int readByte = super.read();
    tellPoint++;
    return readByte;
    // Reads bytes (specified by PullSourceStream).
    public int read (byte[] buf, int off, int len) throws IOException {
    int bytesRead = super.read (buf, off, len);
    tellPoint += bytesRead;
    return bytesRead;
    public int read (byte[] buf) throws IOException {
    int bytesRead = super.read (buf);
    tellPoint += bytesRead;
    return bytesRead;
    // Returns true if in.available() <= 0 (that is, if there are no bytes to
    // read without blocking or end-of-stream).
    public boolean willReadBlock () {
    try {
    return (in.available() <= 0);
    } catch (IOException ioe) {
    // Stick a fork in it...
    return true;
    // Resets the tellPoint to 0 (meaningless after you've read one buffer length).
    public void reset () throws IOException {
    super.reset();
    tellPoint = 0;
    // Skips bytes as expected.
    public long skip (long n) throws IOException {
    long skipped = super.skip(n);
    tellPoint += skipped;
    return skipped;
    // Trivial.
    public void mark (int readLimit) {
    super.mark (readLimit);
    // Returns the "unknown" ContentDescriptor.
    public ContentDescriptor getContentDescriptor () {
    return unknownCD;
    // Lengths? We don't need no stinkin' lengths!
    public long getContentLength () {
    return SourceStream.LENGTH_UNKNOWN;
    // Theoretically, this is always false.
    public boolean endOfStream () {
    return false;
    // We don't provide any controls, either.
    public Object getControl (String controlName) {
    return null;
    public Object[] getControls () {
    return null;
    // Not really... but...
    public boolean isRandomAccess () {
    return true;
    // This only works for the first bits of the stream, while JMF is attempting
    // to figure out what the stream is. If it tries to seek after that, bad
    // things are going to happen (invalid-mark exception).
    public long seek (long where) {
    try {
    reset();
    mark(MAX_MARK);
    skip(where);
    } catch (IOException ioe) {
    ioe.printStackTrace();
    return tell();
    // Tells where in the stream we are, adjusted for seeks, resets, skips, etc.
    public long tell () {
    return tellPoint;
    void fatalError (String deathKnell) {
    System.err.println(":[ Fatal Error ]: - " + deathKnell);
    throw new Error(deathKnell);
    ** end file SeekableInputStream.java **
    ** begin file StreamingViewerApplet.java **
    * This Java Applet will take a streaming video passed to it via the applet
    * command in the embedded object and attempt to play it. No fuss, no muss.
    * Based on the SimplePlayerApplet from Sun, and uses a modified version of
    * jicyshout's (jicyshout.sourceforge.net) tweaks to get JMF to play streams.
    * Use it like this:
    * <!-- Sample HTML
    * <APPLET CODE="StreamingViewerApplet.class" WIDTH="320" HEIGHT="240">
    * <PARAM NAME="code" VALUE="StreamingViewerApplet.class">
    * <PARAM NAME="type" VALUE="application/x-java-applet;version=1.1">
    * <PARAM NAME="streamwidth" VALUE="width (defaults to 320, but will resize as per video size)">
    * <PARAM NAME="streamheight" VALUE="height (defaults to 240, but will resize as per video size)">
    * <PARAM NAME="stream" VALUE="insert://your.stream.address.and:port/here/">
    * </APPLET>
    * -->
    import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.String;
    import java.lang.ArrayIndexOutOfBoundsException;
    import java.net.URL;
    import java.net.MalformedURLException;
    import java.net.*;
    import java.io.*;
    import java.io.IOException;
    import java.util.Properties;
    import javax.media.*;
    import javax.media.protocol.*;
    public class StreamingViewerApplet extends Applet implements ControllerListener {
    Player player = null;
    Component visualComponent = null;
    SimpleVideoDataSource dataSource;
    URL url;
    MediaLocator ml;
    Panel panel = null;
    int width = 0;
    static int DEFAULT_VIDEO_WIDTH = 320;
    int height = 0;
    static int DEFAULT_VIDEO_HEIGHT = 240;
    String readParameter = null;
    // Initialize applet, read parameters, create media player.
    public void init () {
    try {
    setLayout(null);
    setBackground(Color.white);
    panel = new Panel();
    panel.setLayout(null);
    add(panel);
    // Attempt to read width from applet parameters. If not given, use default.
    if ((readParameter = getParameter("streamwidth")) == null) {
    width = DEFAULT_VIDEO_WIDTH;
    } else {
    width = Integer.parseInt(readParameter);
    // Ditto for height.
    if ((readParameter = getParameter("streamheight")) == null) {
    height = DEFAULT_VIDEO_HEIGHT;
    } else {
    height = Integer.parseInt(readParameter);
    panel.setBounds(0, 0, width, height);
    // Unfortunately, this we can't default.
    if ((readParameter = getParameter("stream")) == null) {
    fatalError("You must provide a stream parameter!");
    try {
    url = new URL(readParameter);
    ml = new MediaLocator(url);
    dataSource = new SimpleVideoDataSource(ml);
    } catch (MalformedURLException murle) {
    fatalError("Malformed URL Exception: " + murle);
    try {
    dataSource.connect();
    player = Manager.createPlayer(dataSource);
    } catch (IOException ioe) {
    fatalError("IO Exception: " + ioe);
    } catch (NoPlayerException npe) {
    fatalError("No Player Exception: " + npe);
    if (player != null) {
    player.addControllerListener(this);
    } else {
    fatalError("Failed to init() player!");
    } catch (Exception e) {
    fatalError("Error opening player. Details: " + e);
    // Start stream playback. This function is called the
    // first time that the applet runs, and every time the user
    // re-enters the page.
    public void start () {
    try {
    if (player != null) {
    player.realize();
    while (player.getState() != Controller.Realized) {
    Thread.sleep(100);
    // Crashes... here?
    player.start();
    } catch (Exception e) {
    fatalError("Exception thrown: " + e);
    public void stop () {
    if (player != null) {
    player.stop();
    player.deallocate();
    } else {
    fatalError("stop() called on a null player!");
    public void destroy () {
    // player.close();
    // This controllerUpdate function is defined to implement a ControllerListener
    // interface. It will be called whenever there is a media event.
    public synchronized void controllerUpdate(ControllerEvent event) {
    // If the player is dead, just leave.
    if (player == null)
    return;
    // When the player is Realized, get the visual component and add it to the Applet.
    if (event instanceof RealizeCompleteEvent) {
    if (visualComponent == null) {
    if ((visualComponent = player.getVisualComponent()) != null) {
    panel.add(visualComponent);
    Dimension videoSize = visualComponent.getPreferredSize();
    width = videoSize.width;
    height = videoSize.height;
    visualComponent.setBounds(0, 0, width, height);
    } else if (event instanceof CachingControlEvent) {
    // With streaming, this doesn't really matter much, does it?
    // Without, a progress bar of some sort would be appropriate.
    } else if (event instanceof EndOfMediaEvent) {
    // We should never see this... but...
    player.stop();
    fatalError("EndOfMediaEvent reached for streaming media. ewe ewe tea eff?");
    } else if (event instanceof ControllerErrorEvent) {
    player = null;
    fatalError(((ControllerErrorEvent)event).getMessage());
    } else if (event instanceof ControllerClosedEvent) {
    panel.removeAll();
    void fatalError (String deathKnell) {
    System.err.println(":[ Fatal Error ]: - " + deathKnell);
    throw new Error(deathKnell);
    ** end file StreamingViewerApplet.java **
    Now, I'm still new to the JMF, so this might be obvious to some of you... but it's exploding on me, and crashing to desktop (both in IE and Firefox) with some very fun errors:
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x21217921, pid=3200, tid=3160
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing)
    # Problematic frame:
    # C 0x21217921
    --------------- T H R E A D ---------------
    Current thread (0x058f7280): JavaThread "JMF thread: com.sun.media.amovie.AMController@506411[ com.sun.media.amovie.AMController@506411 ] ( realizeThread)" [_thread_in_native, id=3160]
    siginfo: ExceptionCode=0xc0000005, writing address 0x034e6360
    (plenty more here, I can post the rest if necessary)
    The problem seems to be coming from the "return seekStreams" statement in the first file; when I have execution aborted before that (with a fatalError call), it doesn't crash.
    Any tips/hints/suggestions?

    You should write your own Applet, where you can easily get the visual component (getVisualComponent())and show it directly in your Applet (you call it "embedded"). As far as I know, all examples (AVReceive* etc.) use the component which opens a new window.
    Best regards from Germany,
    r.v.

  • Applet without JMF installation at client side

    hello,
    I am trying developing an applet SIP phone based on Jain Sip Applet Phone( which originally can only deal with audio signal). But I found a big problem that I have to make every client install the JMF, however the clients hope there is no software to be installed locally.
    In application, I can run it without JMF installation by copying all the dlls to system32 directory and add some related JMF source code into my own project. Or just simply put the jmf.property to the "lib" directory, which also works.
    However, as for the applet, it dosen't that simple for the security thing. Here is the output in cosole:
    @mediaManager.detectSupportedCodes- number of capture devices: 2
    - name of the capture device: JavaSound audio capture
    - format accepted by this AUDIO device: LINEAR, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 44100.0 Hz, 16-bit, Mono, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 22050.0 Hz, 16-bit, Stereo, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 22050.0 Hz, 16-bit, Mono, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 11025.0 Hz, 16-bit, Stereo, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 11025.0 Hz, 16-bit, Mono, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 8000.0 Hz, 16-bit, Stereo, LittleEndian, Signed
    - format accepted by this AUDIO device: LINEAR, 8000.0 Hz, 16-bit, Mono, LittleEndian, Signed
    - name of the capture device: vfw:Microsoft WDM Image Capture (Win32):0
    - format accepted by this VIDEO device: YUV Video Format: Size = java.awt.Dimension[width=352,height=288] MaxDataLength = 202752 DataType = class [B yuvType = 32 StrideY = 704 StrideUV = 704 OffsetY = 0 OffsetU = 1 OffsetV = 3
             - format accepted by this VIDEO device: YUV Video Format: Size = java.awt.Dimension[width=160,height=120] MaxDataLength = 38400 DataType = class [B yuvType = 32 StrideY = 320 StrideUV = 320 OffsetY = 0 OffsetU = 1 OffsetV = 3
             - format accepted by this VIDEO device: YUV Video Format: Size = java.awt.Dimension[width=176,height=144] MaxDataLength = 50688 DataType = class [B yuvType = 32 StrideY = 352 StrideUV = 352 OffsetY = 0 OffsetU = 1 OffsetV = 3
             - format accepted by this VIDEO device: YUV Video Format: Size = java.awt.Dimension[width=320,height=240] MaxDataLength = 153600 DataType = class [B yuvType = 32 StrideY = 640 StrideUV = 640 OffsetY = 0 OffsetU = 1 OffsetV = 3
             - format accepted by this VIDEO device: YUV Video Format: Size = java.awt.Dimension[width=640,height=480] MaxDataLength = 614400 DataType = class [B yuvType = 32 StrideY = 1280 StrideUV = 1280 OffsetY = 0 OffsetU = 1 OffsetV = 3
    java.lang.RuntimeException: No permission to capture from applets
    -> Couldn't connect to audio capture device
    java.lang.RuntimeException: No permission to capture from applets
    -> Couldn't connect to video capture device
          I found that my applet can detect two device which is correct but has "no permission to capture from applets".
          In the progress of installation the JMF, and option is "permit recording from an applet". I read the source code, and found it dose the following works:
          if I choose "permit recording from an applet",  then "allowCapture=1", and in "settingPanel.java" it dose:
         "boolean allowCapture = checkAllowCapture.getState();
          Registry.set("secure.allowCaptureFromApplets", new Boolean(allowCapture));"
          I want to do what the installation progress did to give permition to applet, however, when I do the following:
           private static final String PROP_ALLOW_CAPTURE_FROM_APPLETS
            = "secure.allowCaptureFromApplets";
           Registry.set(PROP_ALLOW_CAPTURE_FROM_APPLETS, new Boolean(true));
           Registry.commit();
          in my project , it throws exception like this: "Failed to initially commit JMFRegistry. Ignoring err.java.lang.SecurityException: commit: Permission denied"
          The code which i thought could give applet the rights is denied.
          Till now, I have also read some similar questions in different forums, but there is no good answer.
          Can you help me? Is there any possibility to run the applet without installation on the client side ? Is my method right? If not, how should I do?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    xljiayuan wrote:
    ..I am trying developing an applet SIP phone based on Jain Sip Applet Phone( which originally can only deal with audio signal). If this is pure audio, can it be done using JavaSound?
    ..But I found a big problem that I have to make every client install the JMF, however the clients hope there is no software to be installed locally.To run an applet, the applet needs to be 'installed' on the user machine. Same with anything else.
    BTW - have you investigated JavaFX? It is effectively the replacement for JMF, and possibly has a better end-user experience than trying to install JMF.
    However, as for the applet, it dosen't that simple for the security thing. Here is the output in cosole:
    in my project , it throws exception like this: "Failed to initially commit JMFRegistry. Ignoring err.java.lang.SecurityException: commit: Permission denied"Is your applet digitally signed? If not, it has no hope of intercepting sound on the client. It is that simple.
    Imagine if you visited a web page with a 1px x 1px applet (effectively invisible) that could hear everything you say, and transmit it back to the server. Sun is not about to allow that, unless the end-user has granted the applet extended permissions.

  • Error Msg Prompted when exit a Video Capture applet

    I converted a sample Video Capture App to a applet, when i stoped capturing and exit, this massage prompted:
    "The instruction at '0X05a82f30' referernced memory at '0x05aa20f8', The memory could not be 'read'. Click on OK to ternimate the program".
    This app will write the captured video file onto local disk, but i've setted the security options in JMF Preference config.
    I just wonder why this error message occur?
    i'm now working on this applet for my JSP page, i want users can captrue pictures from the WebCam and then save as JPEG images.
    I realy appreciate it if any guys can give me some suggestion?

    I also writing a applet to do that. But I can work in application model. When I run it in browser . It throw out an error. Following is my code....
    FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
    tt.setText(fgc.toString()+"\r\n");
    Buffer buf = fgc.grabFrame();
    tt.append(buf.toString()+"\r\n");
    BufferToImage btoi = new BufferToImage((VideoFormat)buf.getFormat());
    tt.append(btoi.toString()+"\r\n");
    java.awt.image.BufferedImage img = (java.awt.image.BufferedImage)btoi.createImage(buf);
    tt.append(img.toString()+"\r\n");
    try {
    File file = new File("c:\\Testing.jpg");
    FileOutputStream out = new FileOutputStream(file);
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(img);
    param.setQuality(0.7f, false);
    encoder.setJPEGEncodeParam(param);
    //encoder.encode(buffImg);
    encoder.encode(img);
    out.close();
    } catch (Exception ex) {
    ex.printStackTrace();

Maybe you are looking for

  • PDF not showing certain updates in Illustrator CC ?

    I've had a strange problem that happens every so often and is very annoying and time consuming. I'll be working in Illustrator CC and I save my work as pdf (with editing abilities preserved). Then when I open the file later, the last changes that I m

  • Graphical Mapping Error: Unexpected Exception-While saving Mapping Object

    Hello Experts, I am unable to save Message Mapping in PI7.11 with following version details: Version Service Pack:03 Release:NW711_03_REL We already had this issue before but after applying Service Path it got resolved.. but now again its giving the

  • Folder Portlet will not display edit (or anything else)

    I am portal30. I created a new content area. I clicked the "Edit Root Folder" link of my content area, and published it as a Portlet. I created a new page. I added my newly created content area as a portlet to the page. I saved my page. WHen I view t

  • Help with controlling a flash video in director

    I have imported a flash file into my director movie and would like a replay button but can not find the correct lingo. The flash file is called equation. Any help appreciated!! thank you

  • Error in loading bean on startup using jsf

    Hiii.... can anybody help to solve this problem.I want to call a class after the jsf is loaded in startup.Currently i have loaded in startup using<bean></bean> tag but when i am accessing some service classes from loaded bean i am getting error......