opa galera
Seguinte… estou desenvolvendo uma aplicação distribuida que integra computadores e PDAs…
A aplicação é um sistema integrado de câmeras onde cada câmera pode ser vista pelo PDA…
Até agora… todas as tentativas de ver a imagem da câmera fracassaram, agora estou tentando criar um servidor RTP com JMF para disponibilizar o stream da web cam para ser vista no PDA…
Estou com dúvida se o meu código para este JMF RTP está errado… .deem uma olhada…
Processor proc = null;
javax.media.protocol.DataSource ds = null;
TrackControl[] tc = null;
int y;
boolean encodingOk = false;
Vector<javax.media.protocol.DataSource> datasources = new Vector<javax.media.protocol.DataSource>();
for( int x = 0 ; x < camerasInfo.length ; x++ ){
try {
proc = Manager.createProcessor(camerasInfo[x].getLocator());
}catch (NoProcessorException e) { System.out.println("Erro ao intânciar PROCESSOR: " + e); }
catch (IOException e) { System.out.println("Erro ao intânciar PROCESSOR: " + e); }
proc.configure();
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
proc.setContentDescriptor( new ContentDescriptor(ContentDescriptor.RAW_RTP) );
tc = proc.getTrackControls();
for( y = 0; y < tc.length ; y++ ){
if (!encodingOk && tc[y] instanceof FormatControl){
if( ( (FormatControl) tc[y] ).setFormat( new VideoFormat(VideoFormat.RGB) ) != null ){
tc[y].setEnabled(true);
}else{
encodingOk = true;
}
}else{
tc[y].setEnabled(false);
}
}
proc.realize();
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
try{
ds = proc.getDataOutput();
}catch(NotRealizedError e){
System.out.println("ERRO ao realizar datasource: " + e);
}catch(ClassCastException e){
System.out.println("Erro ao realizar datasource: " + e);
}
datasources.add(ds);
System.out.println( ds.getLocator() );
encodingOk = false;
}
MediaLocator ml = new MediaLocator("rtp://10.1.1.100:99/video");
try {
DataSink datSink = Manager.createDataSink(ds , ml);
datSink.open();
datSink.start();
} catch (NoDataSinkException e) {
System.out.println("Erro ao instanciar DataSink: " + e );
} catch (SecurityException e) {
System.out.println("Erro ao iniciar DataSink: " + e);
} catch (IOException e) {
System.out.println("Erro ao iniciar DataSink: " + e);
}
O código acima está certo ou errado ?
Alguem sabe me dizer ?
Outra dúvida que eu tenho é a seguinte…
Eu posso atravéz da MMAPI acessar este stream criado pela JMF ?
Aguardo respostas…
Rodrigo Kerkhoff