Boa tarde senhores!
Mais uma vez preciso da ajuda de vocês.
Há duas semanas pedi uma mão pra carregar imagens dinamicamente, o Roberto Gerson me sugeriu o NCLEdit.
Estudei a API, achei um exemplo no Fórum do Software Público e tentei usar aqui, funcionou na VM 0.10.10, mas não na VM 0.12.3, como o próprio tópico no fórum indica.
Usei a VM 0.10.10 nos testes, mas, ao fazer um teste com o NCLEdit tentando adicionar um novo documento NCL recebi um doloroso "segmentation fault" do ginga...
Como não encontrei nenhum outro exemplo do uso do NCLEdit na internet, preciso de uma ajuda para resolver esse problema, estou enviando anexado 3 códigos muito simples, que escrevi para ficar claro meu problema.
1 - Um teste com o ncl montado na mão, onde eu importo um ncl sem problemas. testeDocumentoImportado.ncl
2 - Um outro teste com o exemplo do fórum, testeNCLEdit.ncl
3 - Por ultimo o que eu preciso, mas não funciona. testNCLEditDocumentoImportado.ncl
Este terceiro está assim:
<?xml version="1.0" encoding="ISO-8859-1"?><ncl id="editcmd" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile"><head><importedDocumentBase id="ibase"></importedDocumentBase><regionBase><region id="rlua" width="20%" height="20%" left="50%"/><region id="rimg" width="20%" height="20%"/></regionBase><descriptorBase><descriptor id="dlua" region="rlua"/><descriptor id="dimg" region="rimg"/></descriptorBase><connectorBase><causalConnector id="onEndAttributionStart"><simpleCondition role="onEndAttribution" /><simpleAction role="start" /></causalConnector></connectorBase></head><body id="bodyId"><port id="p1" component="lua1"/><media id="lua1" src="NCLEditDocumentoImportado.lua" descriptor="dlua"><property name="img1Start"/><property name="keyPressed"/></media></body></ncl>
Onde o documento NCLEditDocumentoImportado.lua é como se segue:
local function handler(evt)if evt.class == 'ncl' and evt.type == 'presentation' and evt.action == 'start' thenlocal commandAddNode = {}commandAddNode["class"] = 'edit'commandAddNode["documentId"] = 'editcmd'commandAddNode["command"] = 'addImportedDocumentBase'commandAddNode["compositeId"] = 'bodyId'commandAddNode["data"] = '<?xml version="1.0" encoding="UTF-8"?><importedDocumentBase></importedDocumentBase>'--postagem do comando de edicao addNodeprint('Enviando o primeiro....---------------------------')--event.post('out', commandAddNode)print('--------------------------------------------------')local commandAddLink = {}commandAddLink["class"] = 'edit'commandAddLink["documentId"] = 'editcmd'commandAddLink["command"] = 'addImportNCL'commandAddLink["compositeId"] = 'ibase'commandAddLink["data"] = '<?xml version="1.0" encoding="UTF-8"?><importNCL documentURI="/misc/ncl30/ncledit/exemplo_03/main.ncl" alias="widget"/>'--postagem do comando de edicao addLinkprint('Enviando o Segundo....----------------------------')event.post('out', commandAddLink)print('--------------------------------------------------')
commandAdd = {}commandAdd["class"] = 'edit'commandAdd["documentId"] = 'editcmd'commandAdd["command"] = 'addContext'commandAdd["compositeId"] = 'bodyId'commandAdd["data"] = '<?xml version="1.0" encoding="UTF-8"?><context id="importExemplo" refer="widget#idbody"/>'--postagem do comando de edicao addLinkprint('Enviando o Terceiro....---------------------------')event.post('out', commandAdd)print('--------------------------------------------------')--postagem do comando de atribuicao para que o no adicionado comece a tocarevent.post{class='ncl', type='attribution', action='start', name='img1Start', value='yes'}event.post{class='ncl', type='attribution', action='stop', name='img1Start', value='yes'}endend
event.register(handler)
O resultado é:
(...)ApplicationPlayerAdapter::updateStatus with code = '5' param = '0x25, ,editcmd,<?xml version="1.0" encoding="UTF-8"?><importNCL documentURI="/misc/ncl30/ncledit/exemplo_03/main.ncl" alias="widget"/>' and type = '10'ApplicationPlayerAdapter::updateStatus NCLEDIT newParam = '0x25,-1,editcmd,<?xml version="1.0" encoding="UTF-8"?><importNCL documentURI="/misc/ncl30/ncledit/exemplo_03/main.ncl" alias="widget"/>'PresentationEngineManager::updateStatus NCLEDITFormatterMediator::editingCommand(0x25): '3'TimeStamp: 1.857ComponentManager::releaseComponentFromObject 'NclDocumentConverter'../../launcher.sh: line 14: 999 Segmentation fault /usr/local/sbin/ginga --ncl $1
Espero que possam me ajudar, é o útimo ponto pra eu encerrar a implementação proposta na minha monografia :D
PS: Pra fazer os testes e executar com sucesso o exemplo testeNCLEdit.ncl é importante executar o ncl de dentro da pasta da aplicação, já que o caminho relativo pra encontrar a imagem é baseado no local em que o 'launcher' é chamado, assim:
cd /misc/ncl30/ncledit/../../launcher.sh testeNCLEdit.ncl
Obrigado!
Welington Veiga
'Há pessoas que transformam o sol numa simples mancha amarela, mas há aquelas que fazem de uma simples mancha amarela o próprio sol.'
Pablo Picasso
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Desenvolvimento para TV digital" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para devdtv@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para devdtv+unsubscribe@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/devdtv?hl=pt-BR.






0 comentários:
Postar um comentário