Olá,
Desenvolvi uma aplicação que envolvia a interação entre NCL/Java a algum tempo e até então não tive necessidade de aproveitá-la. Instalei a última versão do player (Ginga-NCL Emulator v1.1.1) e, ao tentar executá-la percebi que os parâmetros que eram passados ao Java pelo NCL não estavam sendo exibidos. Realizei outros testes e ainda assim não obtive sucesso.
Recorri a versão Ginga-NCL Player v1.0.2, utilizada na criação dessas aplicações e estas funcionaram corretamente.
Gostaria se possível que dessem uma olhada nessa parte, e, mais uma dúvida: Não seria esse o problema que está acontecendo entre a interação NCL/Lua, pois, teoricamente, esta seria feita da mesma forma (criar um conector onBeginSet, que chama o método/função do arquivo .class/.lua, passando o parâmetro desejado)?
Obrigado pela atenção,
Gabriel Paduan
Autor: Gabriel Paduan
22 comentários
<ncl id="exemplo02" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head> <regionBase>
<region id="rgTV" width="1920" height="1080">
<region id="rgTitulo1" left="448" top="116" width="324" height="40" />
<region id="rgVideo1" left="448" top="156" width="324" height="368" />
</region>
</regionBase> <descriptorBase>
<descriptor id="dTitulo1" region="rgTitulo1">
<descriptorParam name="x-classpath" value="" />
</descriptor> <descriptor id="dVideo1" region="rgVideo1">
<descriptorParam name="soundLevel" value="1" />
</descriptor>
</descriptorBase> <connectorBase>
<importBase alias="connectors" documentURI="composerConnectorBase.conn" />
</connectorBase> </head>
<body>
<port id="pInicio" component="video1" /> <media id="titulo1" src="LegendaXlet.class" descriptor="dTitulo1" />
<media type="video/mpeg" id="video1" src="media/video1.mpg" descriptor="dVideo1" /> <link id="lVideo1Titulo1Start" xconnector="connectors#onBeginStartN">
<bind component="video1" role="onBegin" />
<bind component="titulo1" role="start" />
</link> <link id="lVideo1Titulo1Stop" xconnector="connectors#onEndStopN">
<bind component="video1" role="onEnd" />
<bind component="titulo1" role="stop" />
</link>
</body>
</ncl> //Arquivo LegendaXlet.java import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics; import javax.tv.graphics.TVContainer;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import javax.tv.xlet.XletStateChangeException; public class LegendaXlet implements Xlet{
XletContext thisContext;
public void initXlet(XletContext ctx) throws XletStateChangeException {
thisContext = ctx;
}
public void startXlet() throws XletStateChangeException {
Container rootContainer = TVContainer.getRootContainer(thisContext);
Component legenda = new Component (){
public void paint(Graphics g){
g.setColor(Color.BLACK);
g.fillRect(0, 0, 1024, 40);
g.setColor(Color.WHITE);
g.drawString("Legenda de Demonstra\u00E7\u00E3o 2", 0, 15);
}
};
rootContainer.setLayout(new BorderLayout());
rootContainer.add(legenda, BorderLayout.CENTER);
}
public void pauseXlet() {}
public void destroyXlet(boolean unconditional) throws XletStateChangeException {}
}