Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

Executação de áudio em Lua

30 de Junho de 2008, 13:13 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 139 vezes

Olá pessoal,

estou fazendo uma aplicação em Lua e gostaria de saber como eu posso executar um áudio em Lua.

Alguém poderia me ajudar??

Att. 

 

Autor: Aline Manera


1919 comentários

  • Fa8be082672b0f47e26ad5a87091961b?only path=false&size=50&d=404Hugo Cesar Crohare Lavalle(usuário não autenticado)
    30 de Junho de 2008, 13:32

     

    Aline,

     No seu programa lua, você pode mandar iniciar uma âncora, com um comando deste tipo:

     event.post('out', { class='ncl', type='presentation', area='audioMedia', transition='starts' })

     Onde audioMedia é uma âncora da mídia lua, no ncl. Aí é só criar um link, com condição de início, o start de audioMedia, e como ação, o início de uma mídia com o áudio.

     

  • B84c5aed621335947af2d6faa786d885?only path=false&size=50&d=404Francisco Sant'Anna(usuário não autenticado)
    10 de Julho de 2008, 0:45

     

    Por enquanto só é possível tocar áudio via NCL.
    Você pode criar um elo entre uma âncora Lua e um som no NCL e disparar
    essa âncora via Lua.
    abs,
    Francisco

    2008/6/30 :

    Forum: NCLua: Dúvidas sobre o uso da Linguagem Lua em programas
    NCL [2]
    Thread: Executação de áudio em Lua [3]
    Author: Aline Manera [4]
    Posted: 2008-06-30 13:13:23.357044-03

    Olá pessoal,

    estou fazendo uma aplicação em Lua e gostaria de saber como eu
    posso executar um áudio em Lua.

    Alguém poderia me ajudar??

    Att.

    Recebendo correspondência demais? Gerencie suas notificações em:
    www.​soft​ware​publ​ico.​gov.​br/n​otif​icat​ions​/man​age [5]

    [1] mailto:aline.manera@gmail.com
    [2] www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​ging​a/fo​rums​/for​um-v​iew?​foru​m_id​=454​9270
    [3] www.​soft​ware​publ​ico.​gov.​br/d​otlr​n/cl​ubs/​ging​a/fo​rums​/mes​sage​-vie​w?me​ssag​e_id​=492​0157
    [4] mailto:aline.manera@gmail.com
    [5] www.​soft​ware​publ​ico.​gov.​br/n​otif​icat​ions​/man​age

    • 3997f871fae2fc64c385e399f16a7836?only path=false&size=50&d=404Aline Manera(usuário não autenticado)
      10 de Julho de 2008, 14:57

       

      Acho que o meu problema complicou-se um pouco.

      O que eu quero fazer é: sempre que o usuário apertar uma determinada tecla, por exemplo, o botão verde do controle remoto, inicia-se o áudio.

      Eu fiz a âncora via Lua como sugerido acima, porém isso só dá certo uma vez. Na segunda vez que o usuário aperta a tecla, o áudio não se inicia. Creio eu que seja porque a âncora já foi iniciada.

      Abaixo o código Lua e NCL que eu estou usando para tratar o audio.

      if evt.key == 'GREEN' and lista[0] ~= nil then
         local resp = verifica_resposta()
         if not resp then
             event.post('out', {class='ncl', type='presentation', area='audioErrado', transition='starts'})       
         else
             event.post('out', {class='ncl', type='presentation', area='audioCerto', transition='starts'})
         end

      end

       <link xconnector="onBegin1StartN">
              <bind role="onBegin" component="lua" interface="audioErrado"/>
              <bind role="start" component="errado"/>

      </link>

      No elo NCL acima, o audio "errado" é iniciado quando a âncora Lua é iniciada. Na segunda vez que o usuário aperta a tecla, o áudio não será iniciado porque a âncora já foi iniciado anteriormente.

      Alguém tem alguma sugestão para esse problema?

      Att.

      • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
        10 de Julho de 2008, 16:50

         

        Ola, o seu problema deve ser mesmo de ancora ja iniciada,

        para fazer o que voce quer, deve primeiro parar a execucao dela, o mesmo vale para atribuicao de propriedades.

        Fiz um codigo que testa no .lua mesmo se a midia foi iniciada ou parada. Seria melhor testar isso atraves do atributo 'state' porem podes fazer o teste assim, para ver se funciona.

        Nao testei o codigo, teste e diga se funcionou.

        --"false" para ancora inciada; "true" para ancora parada. 
        local anc = "false" 
        if aux == "GREEN" then
             if anc == "false" then
                 if not resp then               event.post('out', {class='ncl', type='presentation', area='audioErrado', transition='starts'})                 else               event.post('out', {class='ncl', type='presentation', area='audioCerto', transition='starts'})          end
                 anc = "true"
             else
                  if not resp then               event.post('out', {class='ncl', type='presentation', area='audioErrado', transition='stops'})                 else               event.post('out', {class='ncl', type='presentation', area='audioCerto', transition='stops'})          end
        anc = "false"
            end
        end

        • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
          10 de Julho de 2008, 16:51

           

          De  novo, com codigo visivel! :)

          --"false" para ancora inciada; "true" para ancora parada. 

          local anc = "false" 

          if aux == "GREEN" then

               if anc == "false" then

                   if not resp then
                        event.post('out', {class='ncl', type='presentation', area='audioErrado', transition='starts'})       
                   else
                        event.post('out', {class='ncl', type='presentation', area='audioCerto', transition='starts'})
                   end

                   anc = "true"

               else

                    if not resp then
                        event.post('out', {class='ncl', type='presentation', area='audioErrado', transition='stops'})       
                   else
                        event.post('out', {class='ncl', type='presentation', area='audioCerto', transition='stops'})
                   end

          anc = "false"

              end

          end

    • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
      28 de Julho de 2009, 13:41

       

      Boa tarde Francisco,

         Gostaria de saber se essa funcionalidade de dispar uma ancora via lua está indisponível para a versão do set top box 0.10.1, pois tentei fazer um teste e não está funcionando.

         Estou usando da seguinte forma:

           * No arquivo .ncl estou criando uma âncora da seguinte forma:

            ...

         <body>

            <port component="Inicio" id="port_Inicio"/>

            <media id="Inicio" descriptor="dTV" src="Inicio.lua" type="application/x-ginga-NCLua">

              <area id="menu"

            </media>

            <link xconnector="onBeginStart" id="lInicio_Video">

              <bind role="onBegin" component="Inicio" interface="menu"/>

              <bind role="start" component="VideoPrincipal"/>

            </link>

         </body>

      * No arquivo .lua está da seguinte forma:

         function handler(evt)

            event.post('out', {class='ncl', type='presentation', area='menu', transition='starts'})

         end

         event.register(handler)

      • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
        28 de Julho de 2009, 16:12

         

        A versão atual tem suporte a toda a norma.

        Um alerta: a tag <area id="menu" não está fechando mas presumo que foi apenas um erro na hora de colar no fórum.

        Aparentemente o problema está no seu arquivo .lua. Está consultando uma versão antiga da norma:

        event.post('out', {class='ncl', type='presentation', area='menu', transition='starts'})

        Não é mais "starts" e sim "start" (da mesma forma que ao receber o evento) para não criar confusão. Mas o nome do campo é transition ou action? Fiquei na dúvida.

        Sugestão: por favor, dá uma olhada na norma, a versão mais nova, disponível na comunidade, e posta aqui o correto.

        Abraços,

        Carlos

        • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
          28 de Julho de 2009, 21:12

           

          Carlos, boa noite,

             Eu tentei transition e action e em ambos tentei start e starts.

             No caso do arquivo .lua estar consultando uma versão antiga, teria como eu forçar para consultar a nova versão?

          Obrigado pela ajuda.

          • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
            28 de Julho de 2009, 22:14

             

            Oi Carlos Silva, boa noite,Se bem me lembro, a versão mais nova do STB requer que uma âncora de um nó lua especifique um atributo "label". O seu arquivo lua então, não referenciaria o id da âncora, mas sim seu label.Se possível, dá uma olhada no artigo "NCLua - Objetos Imperativos Lua na Linguagem Declarativa NCL" do Francisco Sant’Anna, Renato Cerqueira e Luiz Fernando. Espero ter ajudado. 

            • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
              28 de Julho de 2009, 22:30

               

              Joel,

                Tem como você me passar o link desse artigo?

              Obrigado pela ajuda.

              • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
                28 de Julho de 2009, 22:35

                 

                ftp://ftp.telemidia.puc-rio.br/~lfgs/docs/conferencepapers/2008_10_santanna.pdf

                • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
                  28 de Julho de 2009, 22:59

                   

                  Valeu Joel, muito obrigado

                • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
                  29 de Julho de 2009, 0:54

                   

                  Joel, muito obrigado pela ajuda. O artigo realmente está se referindo a um label, no entanto eu testei não obtive exito nas minhas tentativas.

                  Atenciosamente

                  Carlos

                  • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
                    29 de Julho de 2009, 9:15

                     

                    Carlos,

                     

                    você tentou usar, no post do seu evento, action no lugar de transition?

                    Essa é uma outra mudança apresentada lá.

                    • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
                      29 de Julho de 2009, 9:35

                       

                      Joel,

                         Bom dia. Tentei sim, tentei o transition e o action e para ambos eu tentei também os valores start e starts.

                         Mais uma vez agradeço pela ajuda.

                      • 1d1ad87a8b4565927d0c7094f933e254?only path=false&size=50&d=404Joel André Ferreira dos Santos(usuário não autenticado)
                        29 de Julho de 2009, 10:01

                         

                        Carlos

                        Só vi isso agora, no seu post do código.

                        no exemplo do tutorial (exemplo 3) o post utiliza label no lugar de area.

                        Olhando uma aplicação que fiz aqui, a cobinação usada e que funcionou foi:

                        No NCL:

                        <media id="lua" src="lua.lua">
                        <area id="teste1" label="anc1"/>
                        </media>

                        NO LUA:

                        evento = {
                        class = 'ncl',
                        type = 'presentation',
                        label = 'anc1',
                        action = 'start',
                        }
                        event.post(evento)

                        Espero que dessa vez você tenha sucesso com sua aplicação.

                        • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
                          29 de Julho de 2009, 15:43

                           

                          Valeu, Joel. Acho que deve ter resolvido o problema dele.

                          Obrigado por ajudar no mal-entendido que parece que eu criei. :-)

                          Abraços,
                          Carlos

                        • 89213aa2a46a0dc9c9983e872f9aae71?only path=false&size=50&d=404Carlos da Silva(usuário não autenticado)
                          30 de Julho de 2009, 22:07

                           

                          Joel,

                             Me desculpe pela demora da resposta. Baixei o exemplo que disse, o estudei, e percebi que realmente o arquivo .lua está se referindo a label e não a area, no entanto no NCL ele não se refere a label somente a area id.

                            Fiz o teste conforme abaixo e funcionou perfeitamente.

                            Do mais muito obrigado pela grande ajuda.

                            O arquivo .lua ficou da seguinte forma: 

                              function handler(evt)

                                evt={class='ncl', type='presentation', label='menu', action='start'})

                                event.post(evt)

                                canvas:flush()

                              end

                              event.register(handler)

                            Jó o arquivo NCL ficou da seguinte forma:

                              ...   

                              <media descriptor="dTV" src="Inicio.lua" type="application/x-ginga-NCLua" id="Inicio">

                                <area id="menu"/>

                              </media>

                              ...

                              <link xconnector="onBeginStart" id="lInicio_Video">

                                <bind role="onBegin" component="Inicio" interface="menu"/>

                                <bind role="start" component="VideoPrincipal"/>

                              </link>

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo