Ai galera tô tentato fazer essa classe enviar uma stream (audio) pela rede !
compila blz mas na hora de rodar da o seguinte erro: “streams is [Lcom.sun.media.multiplexer.RawBufferMux$RawBufferSourceStream;@1662dc8 : 1
sink: setOutputLocator rtp://127.0.0.1:5050/audio”.
[size=18]A Classe abaixo [/size]
import javax.media.*;
import javax.media.control.*;
import javax.media.protocol.*;
import javax.media.format.*;
import java.io.IOException;
import java.io.File;
import java.util.Vector;
public class MediaTransmitter {
private MediaLocator mediaLocator = null;
private DataSink dataSink = null;
private Processor mediaProcessor = null;
private static final Format[] FORMATS = new Format[] {
new AudioFormat(AudioFormat.MPEG_RTP)};
//new AudioFormat(AudioFormat.DVI_RTP)};
private static final ContentDescriptor CONTENT_DESCRIPTOR = new ContentDescriptor(ContentDescriptor.RAW_RTP);
public MediaTransmitter(MediaLocator locator) {
mediaLocator = locator;
}
public void startTransmitting() throws IOException {
mediaProcessor.start();
dataSink.open();
dataSink.start();
}
public void stopTransmitting() throws IOException {
dataSink.stop();
dataSink.close();
mediaProcessor.stop();
mediaProcessor.close();
}
public void setDataSource(DataSource ds) throws IOException,
NoProcessorException, CannotRealizeException, NoDataSinkException {
mediaProcessor = Manager.createRealizedProcessor(
new ProcessorModel(ds, FORMATS, CONTENT_DESCRIPTOR));
dataSink = Manager.createDataSink(mediaProcessor.getDataOutput(),
mediaLocator);
}
public static void main(String[] args) {
try {
MediaLocator locator = new MediaLocator("rtp://127.0.0.1:5050/audio");
MediaTransmitter transmitter = new MediaTransmitter(locator);
System.out.println("-> Criando: '" +locator + "'");
Vector devices=CaptureDeviceManager.getDeviceList ( null );
CaptureDeviceInfo cdi= (CaptureDeviceInfo) devices.elementAt ( 0 );
DataSource source = Manager.createDataSource(cdi.getLocator());
transmitter.setDataSource(source);
System.out.println("-> Define fonte de dados");
transmitter.startTransmitting();
System.out.println("-> Transmitindo...");
System.out.println(" Tecle ENTER para sair");
System.in.read();
System.out.println("-> Saindo");
transmitter.stopTransmitting();
} catch (Throwable t) {
t.printStackTrace();
}
System.exit(0);
}
}