Transmissão de audio erro na conversão[Resolvido]

0 respostas
gustavovb

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);
}
}
Criado 19 de maio de 2008
Respostas 0
Participantes 1