Re: JMF Applet without client side installation
Find here with my code:->
import javax.media.*;
import javax.media.control.*;
import javax.media.datasink.*;
import javax.media.format.*;
import javax.media.protocol.*;
import javax.media.control.TrackControl;
import jmapps.util.StateHelper;
import java.io.*;
import java.util.*;
public class SoundApplet extends java.applet.Applet {
public void init() {
//doSpeak();
//doSpeakJMF();
doRTPWork();
}
private void doRTPWork() {
MediaLocator ml = null;
Processor processor = null;
StateHelper sh = null;
try{
ml = new MediaLocator("file://c:/perform.wav");
}catch(Exception ex){
System.out.println("*exceptoin* "+ex);
}
//http://groups.google.co.in/group/comp.lang.java.programmer/
browse_thread/thread/1fa2b20a25eadba0/965262ce1bdeb4bb?lnk=st&q=jmf
+applet+without+installation&rnum=1&hl=en#965262ce1bdeb4bb
try{
System.out.println("a");
processor = Manager.createProcessor(ml);
System.out.println("b");
sh = new StateHelper(processor);
System.out.println("c");
}/*catch (IOException e) {
System.out.println("**22** io exception:-> "+e);
System.exit(-1);
}*/catch (NoProcessorException e) {
System.out.println("*33* no processor exception:-> "+e);
System.exit(-1);
}catch(Exception ex){
System.out.println("*44*:-> "+ex);
}
// Configure the processor
processor.configure();
while (processor.getState() != Processor.Configured){
System.out.println("state:-> "+processor.getState());
System.out.println("configured:-> "+Processor.Configured);
}
processor.realize();
while(processor.getState()!=Processor.Realized);
System.out.println("d");
if (!sh.configure(10000))
System.exit(-1);
System.out.println("e");
// Set the output content type and realize the processor
//processor.setContentDescriptor(new
FileTypeDescriptor(FileTypeDescriptor.WAVE));
//processor.setContentDescriptor(new
ContentDescriptor( ContentDescriptor.RAW));
processor.setContentDescriptor(new
ContentDescriptor( ContentDescriptor.RAW_RTP));
System.out.println("f");
/*if (!sh.realize(10000))
System.exit(-1);*/
// create a File protocol MediaLocator with the location of the
// file to which the data is to be written
MediaLocator dest = new MediaLocator("rtp://192.168.1.7:8080");
System.out.println("h");
// get the output datasource of the processor and exit
// if we fail
DataSource source = null;
try {
source = processor.getDataOutput();
System.out.println("i");
}catch (NotRealizedError e) {
System.out.println("*5* no realized error:-> "+e);
System.exit(-1);
}catch (Exception e) {
System.out.println("*6* exception creating datasource:->
"+e);
System.exit(-1);
}
// hand this datasource to manager for creating an RTP
// datasink our RTP datasink will multicast the audio
try{
DataSink d = Manager.createDataSink(source, dest);
System.out.println("j");
d.open();
System.out.println("k");
d.start();
System.out.println("l");
processor.start();
System.out.println("m");
}catch (Exception e) {
System.out.println("*7*:-> "+e);
System.exit(-1);
}
}
}