logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Jan 3

SharedObject com Flash Media Server

Escrito por Leonardo França em .NET, 1, 2.0, 4, 6, action, Actionscript, ActionScript 3, Actionscript 3.0, Actionscript3, Adobe, Air, Aplicativos, app, AR, BI, botão, browser, C#, class, cliente, código, Cookie, Curso, dados, demo, Download, err, event, EventListener, events, exemplo, Ferramenta, filter, flash, flash media, Flash Media Server, Flash Player, Flex, FMS, function, Geral, git, Google, handle, html, ide, IE, if, image, instalação, int, live, mg, O, on, Outros, Partilha, player, pt, referencia, RIA, Ria’s Geral, RTM, RTMP, S+S, server, servidor, swf, TAT, UI, uint, update, Ved, web, window @ 01 3rd, 2012 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

SharedObject é um recurso que dar ao Flash Player a capacidade de salvar dados localmente para poder ser usado posteriormente em sua aplicação, a grosso modo é como um cookie. Com o Flash Media Server, foi introduzido a possibilidade de usar o SharedObject Remote, no qual os dados são salvos no servidor Flash Media Server e compartilhados para todas as instâncias de uma conexão entre o Flash Player e o Flash Media Server. Isso possibilita a criação de aplicativos em real time como Dashboards, chats e o que mais a imaginação permitir.

O uso do SharedObject Remote pode ser usado de duas maneiras em conjunto com o Adobe Flash Media Server.

  • Somente pelo lado cliente, através do Flash Player/AIR
  • Em conjunto com ActionScript Communication, linguagem de servidor do Flash Media Server

Vejamos o primeiro caso:

Através do lado cliente, através do Flash Player/AIR

Caso você não tenha conhecimento para usar a linguagem Server-side do Flash Media Server, é possível utilizar o SharedObject Remote somente pelo ActionScript 3.0. Vamos a um exemplo clássico sharedBall, onde o objetivo é compartilhar as posições da bolinha a atualizar nos outros clientes conectados a mesma instância.

  • Vá até o diretório de instalação do Flash Media Server e procure pela pasta “applications”, lá crie um diretório chamado “sharedBall”, dentro dele um arquivo chamado “main.asc”
  • Abra o main.asc no seu editor de textos de preferencia ou pelo próprio Flash e digite: trace(“sharedBall…”);
  • Vamos testar esse arquivo, abra o console do Flash Media Server, geralmente fica localizado no diretorio de instalação/webrrot/swfs. Você pode abrir pelo browser ou o swf diretamente.
  • Clique no botão “View Applications” e em seguida procure o nome “sharedBall” no combobox logo no canto inferior esquerdo onde está escrito “New Instance…”
  • Selecione “sharedBall” e deveremos ter na aba Live Log algo como na imagem abaixo:

  • No Flash, criei uma bola com as ferramentas de desenho e converti para MovieClip dando o nome de “mc_ball”.
  • Estamos prontos para começar a integração entre o Flash e o Flash Media Server. Crie um layer para o ActionScript e abra o editor apertando F9 ou “Window->Actions”
  • Nosso código começa com a conexão com o servidor Flash Media Server
PLAIN TEXT
ACTIONSCRIPT3:

  1. import flash.net.NetConnection;
  2. import flash.events.NetStatusEvent;
  3. var nc:NetConnection;
  4. function init():void
  5. nc = new NetConnection();
  6. nc.addEventListener(NetStatusEvent.NET_STATUS, handlerNetStatus);
  7. nc.connect(“rtmp://localhost/sharedBall”);
  8. function handlerNetStatus(evt:NetStatusEvent):void
  9. trace(evt.info.code);
  10. init();

Feito isso, podemos testar o swf apertando Ctrl+Enter, se tudo correr bem, deveremos ter a seguinte mensagem no output do Flash:

NetConnection.Connect.Success

Com a conexão feita, podemos instanciar o nosso SharedObject Remote para compartilhar as posições de x e y da bolinha.

PLAIN TEXT
ACTIONSCRIPT3:

  1. if(evt.info.code == “NetConnection.Connect.Success”)
  2. so = SharedObject.getRemote(“so”,nc.uri,false);
  3. so.addEventListener(NetStatusEvent.NET_STATUS, handlerNetStatus);
  4. so.addEventListener(SyncEvent.SYNC, handlerSync);
  5. so.connect(nc);

O handlerSync é responsável por atualizar os dados de x e y pegaremos do SharedObject Remote:

PLAIN TEXT
ACTIONSCRIPT3:

  1. function handlerSync(evt:SyncEvent):void
  2. mc_ball.x = so.data.x;
  3. mc_ball.y = so.data.y;

Daremos a opção de ao clicar na bolinha, que ela possa ser arrastável, em seguida atualizaremos as posições de x e y no SharedObject Remote:

PLAIN TEXT
ACTIONSCRIPT3:

  1. mc_ball.addEventListener(MouseEvent.MOUSE_DOWN, handlerSharedBall);
  2. mc_ball.addEventListener(MouseEvent.MOUSE_UP, handlerSharedBallOut);
  3. function handlerSharedBall(evt:MouseEvent):void
  4. this.addEventListener(Event.ENTER_FRAME, update);
  5. mc_ball.startDrag();
  6. function handlerSharedBallOut(evt:MouseEvent):void
  7. mc_ball.stopDrag();
  8. function update(evt:Event=null):void
  9. so.setProperty(“x”,mc_ball.x);
  10. so.setProperty(“y”,mc_ball.y);

Segue o código completo:

PLAIN TEXT
ACTIONSCRIPT3:

  1. import flash.net.NetConnection;
  2. import flash.events.NetStatusEvent;
  3. import flash.net.SharedObject;
  4. import flash.events.SyncEvent;
  5. import flash.events.MouseEvent;
  6. import flash.events.Event;
  7. var nc:NetConnection;
  8. var so:SharedObject;
  9. function init():void
  10. nc = new NetConnection();
  11. nc.addEventListener(NetStatusEvent.NET_STATUS, handlerNetStatus);
  12. nc.connect(“rtmp://localhost/sharedBall”);
  13. function handlerNetStatus(evt:NetStatusEvent):void
  14. {
  15. trace(evt.info.code);
  16. if(evt.info.code == “NetConnection.Connect.Success”)
  17. so = SharedObject.getRemote(“so”,nc.uri,false);
  18. so.addEventListener(NetStatusEvent.NET_STATUS, handlerNetStatus);
  19. so.addEventListener(SyncEvent.SYNC, handlerSync);
  20. so.connect(nc);
  21. }
  22. function handlerSync(evt:SyncEvent):void
  23. mc_ball.x = so.data.x;
  24. mc_ball.y = so.data.y;
  25. mc_ball.addEventListener(MouseEvent.MOUSE_DOWN, handlerSharedBall);
  26. mc_ball.addEventListener(MouseEvent.MOUSE_UP, handlerSharedBallOut);
  27. function handlerSharedBall(evt:MouseEvent):void
  28. this.addEventListener(Event.ENTER_FRAME, update);
  29. mc_ball.startDrag();
  30. function handlerSharedBallOut(evt:MouseEvent):void
  31. mc_ball.stopDrag();
  32. function update(evt:Event=null):void
  33. so.setProperty(“x”,mc_ball.x);
  34. so.setProperty(“y”,mc_ball.y);
  35. init();

Veja uma demostração em funcionamento:

Download sharedBall

Jul 27

Windows Phone SDK 7.1 Beta 2 Refresh disponível para desenvolvedores

Escrito por Kelps Sousa em .NET, 1, 2.0, 3.5, 4, 6, AR, back, Beta, BI, blog, C#, Desenvolvedor, desenvolvedores, Download, Geral, Google, if, int, map, mg, News, O, on, prova, refresh, Release Candidate, RIA, Ria’s Geral, RTM, S+S, SDK, Tema, UI, Vários, Ved, window, windows @ 07 27th, 2011 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Quem está participando do beta do Windows Phone Mango para desenvolvedores recebeu uma agradável notícia hoje: Foi disponibilizada uma atualização para os aparelhos com um build mais recente do sistema operacional.

O novo build é o 7712, não o 7720, que é a versão RTM. Foi necessário que usássemos essa versão anterior pois é a versão que é compativel com a atualização do SDK e do Zune que estão sendo disponibilizadas neste refresh.

Está previsto que até o final de agosto O Marketplace será aberto para começarmos a publicar aplicações que funcionarão apenas em aparelhos com Windows Phone 7.5, o que nos dará uma chance de testar bem nossas aplicações em vários aparelhos de desenvolvedores antes que esta versão do SO esteja disponível para o público geral. Isso é interessante pois significa que quando a nova versão do SO estiver disponível para o público já haverá várias aplicações no Marketplace tirando proveito das novas capacidades do sistema operacional. Esta atualização de agosto provavelmente virá junto com uma versão RC (Release Candidate) do SDK.

Se você é um desenvolvedor cadastrado no Marketplace, tem um aparelho com Windows Phone e está participando do Beta do Windows Phone Mango, vá agora mesmo ao Connect e instale este refresh, mas não se esqueça de fazer backup dos backups dos seus backups antes de fazer isso, para garantir que você conseguirá voltar o seu telefone para a versão normal quando a versão RTM estiver disponível pois não será possível ir da versão beta diretamente para a versão RTM do WP7.

PS.: Quando você instalar o novo SDK ele vai aparecer como sendo RC na janela de adicionar e remover programas do Windows, mas na verdade esta ainda não é a versão RC do SDK.



Jun 8

Aplicação demo de vídeo conferência usando RTMFP

Escrito por DanielPedrinha em 1, 2.0, 6, aplicacao, AR, Artigo, blog, C#, cliente, conferência, control, demo, Flex, Geral, ide, IE, O, on, Ria’s Geral, RTM, S+S, UI, Vídeo @ 06 8th, 2011 | via http://www.flexbrasilia.com.br/ | Sem comentários
DanielPedrinha
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Continuando o artigo Como conectar clientes usando RTMFP – Real-time Media Flow Protocol segue uma aplicação demo de vídeo-conferência + chat com controle de salas. Clique aqui para testá-la em uma nova janela Cuidado, não entre com dois nomes de usuário no mesmo grupo, eu não implementei nenhum controle de usuário e isso pode fazer [...]

(Read more…)

Dez 8

Chegou: Dominando Flex e Java

Escrito por Daniel Schmitz em 1, 6, AR, auto, Blazeds, cache, comunidade, dados, Desenvolvimento, Desenvolvimento Web, err, Flex, Hibernate, image, Java, Livro, Livros, mg, mysql, NaN, O, on, RIA, Ria’s Geral, RTM, RTMP, site, Spring, Sun, Tecnologia, web @ 12 8th, 2010 | via http://flex.etc.br | Sem comentários
Daniel Schmitz
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Dominando Flex e Java

Um dos livros mais aguardados do ano, com o melhor dos dois mundos no desenvolvimento WEB! O poder do Java e a beleza do Flex, reunidos em uma obra onde diversas tecnologias são abordadas. Vejam só: MySql, JBoss, Tomcat, BlazeDS, Spring, Hibernate, JasperReports, RTMP!

E esta obra foi criada pela própria comunidade! Vocês pediram os assuntos e o livro foi feito assim, de programador para programador!?

Quer saber mais? Visite agora: http://loja.flex.etc.br

Aproveite as promoções de Natal, todos os livros em promoção.

Nov 8

Cadastro de Interesse Dominando Flex e Java

Escrito por Daniel Schmitz em 1, 4, 6, AR, BI, Blazeds, class, cool, CRUD, Eclipse, email, err, Flex, for, Formulário, Hibernate, IE, if, image, int, Introdução, Java, Livro, Livros, Messaging, mg, mysql, NaN, O, on, relatório, Relatórios, RIA, Ria’s Geral, RTM, RTMP, Spring, Tecnologia, UI @ 11 8th, 2010 | via http://flex.etc.br | 1 comentário
Daniel Schmitz
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

O livro Dominando Flex e Java está muito perto de ser lançado! Você tem interesse na sua compra?? Preencha este pequeno formulário para receber em seu email uma oferta exclusiva, no dia de lançamento da obra:

http://bit.ly/CadastroFlexJava

 

Algumas informações sobre o livro:

  • Quantidade de páginas: 256
  • Principais Tecnologias abordadas
    • Flex
    • Java
    • Eclipse
    • MySql
    • JBoss
    • Tomcat
    • Blazeds
    • Spring
    • Hibernate
    • RTMP (Messaging)
    • JasperReports e iReports
  • Requisitos
    • Saber programar
    • Não é mostrado o que é if, for, essas coisas…
  • Capítulos
    • 1) Introdução
    • 2) Preparando o ambiente
    • 3) BlazeDS
    • 4) CRUD com Flex e Java
    • 5) Spring e Hibernate
    • 6) Criando um sistama real
    • 7) Criando aplicações RMTP
    • 8) Relatórios

Sumário completo: http://dl.dropbox.com/u/6740457/flex-java/Sumario-Livro-Dominando-Flex-Java.pdf

Out 28

Criando aplicativos com Web Runtime(WRT) e Flash Lite para dispositivos Nokia

Escrito por Leonardo França em 1, 2.0, 4, 6, Access, action, Actionscript, Adobe, api, Aplicativos, app, AR, Arquitetura, back, bar, BI, botão, browser, carregar, class, classe, Componente, comunicação, control, Curso, Cursos, custom, Desenvolvedor, desenvolvedores, Desenvolvimento, developer, Download, DRE, Dreamweaver, err, exemplo, externalInterface, Ferramenta, flash, flash lite, flash media, Flash Media Server, for, framework, FullScreen, function, geo, html, ide, IE, if, image, int, interface, Java, Javascript, JQuery, kit, label, library, lite, loop, mg, Microsoft, mobile, NaN, O, on, oop, painel, Pessoal, PHP, platform, player, Plugin, pt, RIA, Ria’s Geral, RTM, RTMP, runtime, screen, SDK, server, site, string, swf, tag, TAT, Tecnologia, template, Teste, tool, UI, uint, Ved, Visual Studio, wave, web, Widget, Widgets, XML @ 10 28th, 2010 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Web RunTime é uma das possibilidades que a Nokia[bb]oferece para criação de aplicativos para seus dispositivos movéis. Se você já é um desenvolvedor web, você não precisa de quase mais nada para começar a desenvolver para os dispositivos Nokia usando o WRT. Ele permite a criação de widgets para plataforma S60 sendo uma extensão do navegador Webkit permintindo que as instâncias do browser sejam executadas como se fossem aplicativos separados. E você ainda pode criar aplicativos mais ricos com o uso do Flash.

Ferramentas de desenvolvimento.
A Nokia oferece algumas ferramentas para facilitar o desenvolvimento para WRT:

  • Nokia Web Developer Environment Standalone.
  • Plugin para o Aptana Studio.
  • Extensão para o Adobe Dreamweaver.
  • Plugin para o Microsoft Visual Studio.

Também oferece UI Framework e Library como:

  • Guarana WRT UI library – Uma library baseada em JQuery para o Nokia WRT feita pelo pessoal do INdT(Instituto Nokia de Tecnologia) com sede em Manaus.
  • Nokia Mobile Web Templates – Um conjunto de templates otimizados para mobile e para você customizar como quiser.

E tem algumas API’s para se trabalhar com os recursos dos dispositivos movéis.

  • Platform Service 2.0 – Uma API em JavaScript e ActionScript 2.0 para acessar recursos dos dispositivos movéis como acelerometro, geolocalização etc.
  • API Bridge – é um componente para aparelhos Nokia com Symbian, que permite widgets WRT, conteúdo Adobe Flash Lite e aplicações Java possam acessar recursos do dispositivo através de uma arquitetura plug-in. Os desenvolvedores podem estender o componente APIBridge com os seus próprios plug-ins.

Como funciona os widgets feitos com Web RunTime? esse widgets são arquivos com extensão .wgz que nada mais é que um arquivo compactado com os arquivos de seu site. Os arquivos que não podem faltar são:

  • Info.plist – arquivo responsavel pelas informações de seu widget como versão, pagina inicial, nome etc
  • index.html – na verdade, pode ser qualquer nome desde que esteja setado no Info.plist como MainHTML.

Criar widgets com WRT e Flash Lite
Como você usa html para criar seus widgets com WRT, nada impede de usar o Adobe Flash na mesma maneira de como você usa normalmente atraves do html. Vamos ver um exemplo usando JavaScript para fazer a comunicação com o Flash atraves da classe ExternalInterface. Nesse exemplo utilizarei o Nokia Web Developer Environment Standalone.

  • Crie um novo projeto do tipo Symbian web apps->Basic web app project. Dê um nome para seu projeto e clique em next. São gerados os arquivos basicos para seu projeto.

Daremos a opção do usuario escolher dois videos para tocar. Começaremos com o html contendo as opções de video.

PLAIN TEXT
XML:

  1. <label for="select"></label>
  2.       <select name="select" id="select">
  3.         <option value="sample">sample.flv</option>
  4.         <option value="sneeze">sneeze.flv</option>
  5.       </select>
  6.       <input type="button" name="button" id="button" value="Tocar" onclick="javascript:playVideo();" />

E o html que carregará o swf responsavél por tocar o video:

PLAIN TEXT
XML:

  1. <object id="playerFlashLite" name="playerFlashLite" width="360" height="360" data="PlayerFlashLite.swf"
  2.         allowscriptaccess=‘always’
  3.         allowFullScreen=‘true’
  4.         usefullscreen=‘true’
  5.         type=‘application/x-shockwave-flash’
  6.         loop=‘false’>
  7.       </object>

Editaremos o arquivo basic.js para adicionar o método que mandará para o swf o video que deverá ser tocado.

PLAIN TEXT
JAVASCRIPT:

  1. function playVideo()
  2. {
  3.     document.getElementById("playerFlashLite").playVideo(document.getElementById("select").value);
  4. }

No Flash, criamos um arquivo do tipo Flash Lite 3.0 ou 3.1. No painel da library, clique em na opção “new Video”. Dê o nome de instancia de “vd”. Em type deixe selecionando “Video (ActionScript-controlled) e adicione no stage. Adicionaremos o seguinte codigo para que o Flash execute o video via stream a partir do Flash Media Server:

PLAIN TEXT
ACTIONSCRIPT:

  1. import flash.external.*;
  2.  
  3. ExternalInterface.addCallback("playVideo",this,playVideo);
  4.  
  5. trace("init..");
  6. var nc = new NetConnection();
  7. nc.connect("rtmp://localhost/videoondemand");
  8.  
  9. nc.onStatus = function(info)
  10. {
  11.     trace("Level: " + info.level + " Code: " + info.code);
  12. };
  13.  
  14. function playVideo(video:String)
  15. {
  16.     ns = new NetStream(nc);
  17.     vd.attachVideo(ns);
  18.     ns.play(video);
  19.     ns.connect();
  20.     txt.text = video;
  21.     ns.onStatus = function(info)
  22.     {
  23.         trace("Level: " + info.level + " Code: " + info.code);
  24.     };
  25. }

Usamos a classe estatica ExternalInterface para que nosso método dentro do Flash possa ser chamado a partir do JavaScript. Executando o emulador do Nokia Web Developer, devemos ter algo parecido com isso:

Emulador Nokia Web Developer

Para gerar o arquivo .wgz, bastar clicar com o botão direito no projeto e pedir “Package Web app” e seu aplicativo está pronto para rodar no celular. Testei no Nokia 5230 :D

Para saber mais:
http://www.forum.nokia.com/Develop/Web/Tools/
http://wiki.forum.nokia.com/index.php/Category:Web_Runtime_%28WRT%29
JQuery Mobile
Adobe Flash Lite




Out 15

Usando Acelerômetro no Flash Lite 4.0

Escrito por Leonardo França em 1, 4, 6, action, Actionscript, ActionScript 3, Actionscript 3.0, Actionscript3, Adobe, api, Aplicativos, AR, back, bar, BI, bitmap, browser, cache, camp, class, classe, classes, código, Curso, Cursos, custom, dados, Desenvolvimento, Download, Draw, efeito, efeitos, engine, err, event, EventListener, exemplo, filter, flash, flash lite, Flash Player, Flex, for, function, geo, Google, handle, html, IE, if, image, int, Java, Javascript, lite, live, map, mg, Number, O, on, PHP, player, pt, rest, RIA, Ria’s Geral, RTM, RTMP, streaming, string, tag, Tema, Touch, UI, update, Ved, Widget, Widgets @ 10 15th, 2010 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Tivemos o lançamento do Nokia N8, o primeiro dispositivo oficialmente a suportar Flash Lite 4.0. Além do Nokia N8[bb], também temos o Nokia C7[bb] e o Nokia E7[bb], todos rodando o sistema operacional Symbian^3 e com o Adobe Flash Lite 4.0 já instalado. Isso implica a possibilidade do desenvolvimento de aplicativos para Symbian^3 usando ActionScript 3.0 rodando pelo browser ou standalone.
Precisamos atentar para o fato de que o Flash Lite 4.0 não é o Flash Player 10.1, eles possuem algumas diferenças significativas:

  • Flash Lite suporta algumas funcionalidades parcialmente.
  • Flash Lite adiciona algumas funcionalidades para trabalhar especificamente com dispositivos movéis.

O Flash Lite 4.0 é baseado no Flash Player 10, possuindo recursos que foram introduzido no Flash Player 9 e 10. Entre os recursos disponivéis estão:

  • Multi-touch support
  • Flash Player 10 text engine
  • Using inline text input
  • RTMP data channel
  • RTMPE
  • RTMPT and RTMPTE
  • Multi bit-rate streaming
  • Geolocation
  • Accelerometer
  • SharedObject Remote(Obaaaa! :D )

Além disso veja as classes parcialmente suportadas e as classes não suportadas.
Vamos ao nosso primeiro exemplo com utilização das novas capacidades do Flash Lite 4.0, nesse caso, acelerômetro.

  • Crie um arquivo do tipo Flash Lite 4.0 pelo Flash CS5 ou pelo Adobe Device Central CS5.
  • Adicione três campos de textos dinâmicos, neles serão mostrados as coordenadas de x, y e z.

Começaremos nossa codificação, teremos um método para criar a bola que sofrerá os efeitos do acelerômetro

PLAIN TEXT
ACTIONSCRIPT3:

  1. function createBall():void
  2. {
  3.     ball = new Sprite();
  4.     ball.graphics.beginFill(0xFF0000);
  5.     ball.graphics.drawCircle(0, 0, RADIUS);
  6.     ball.cacheAsBitmap = true;
  7.     ball.x = stage.stageWidth / 2;
  8.     ball.y = stage.stageHeight / 2;
  9.     addChild(ball);
  10. }

Em seguida, verificamos se o aparelho tem acelerômetro para adicionarmos os listeners que pega os dados do sensor e para atualizar as posições da bola.

PLAIN TEXT
ACTIONSCRIPT3:

  1. function AccelerometerTest()
  2. {
  3.     stage.scaleMode = StageScaleMode.NO_SCALE;
  4.     stage.align = StageAlign.TOP_LEFT;
  5.  
  6.     createBall();
  7.  
  8.     if (Accelerometer.isSupported)
  9.     {
  10.         accelerometer = new Accelerometer();
  11.         accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
  12.         stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  13.     }
  14. }

E o restante do código.

PLAIN TEXT
ACTIONSCRIPT3:

  1. function enterFrameHandler(event:Event):void
  2. {
  3.     event.stopPropagation();
  4.     moveBall();
  5. }
  6. function moveBall():void
  7. {
  8.     var newX:Number = ball.x + xSpeed;
  9.     var newY:Number = ball.y + ySpeed;
  10.     if (newX <20)
  11.     {
  12.         ball.x = RADIUS;
  13.         xSpeed = 0;
  14.     }
  15.     else if (newX> stage.stageWidth - RADIUS)
  16.     {
  17.         ball.x = stage.stageWidth - RADIUS;
  18.         xSpeed = 0;
  19.     }
  20.     else
  21.     {
  22.         ball.x +=  xSpeed;
  23.     }
  24.  
  25.     if (newY <RADIUS)
  26.     {
  27.         ball.y = RADIUS;
  28.         ySpeed = 0;
  29.     }
  30.     else if (newY> stage.stageHeight - RADIUS)
  31.     {
  32.         ball.y = stage.stageHeight - RADIUS;
  33.         ySpeed = 0;
  34.     }
  35.     else
  36.     {
  37.         ball.y +=  ySpeed;
  38.     }
  39. }
  40.  
  41. function accUpdateHandler(event:AccelerometerEvent):void
  42. {
  43.     xSpeed +=  event.accelerationX * 2;
  44.     ySpeed -=  event.accelerationY * 2;
  45.    
  46.     txtX.text = new String(event.accelerationX);
  47.     txtY.text = new String(event.accelerationY);
  48.     txtZ.text = new String(event.accelerationZ);
  49. }

Agora basta pedir para testar no emulador do Adobe Device Central CS5, devemos ter algo parecido com isto:

Adobe Device Central CS5


DOWNLOAD SOURCE

Para saber mais:
http://help.adobe.com/en_US/flashlite/dev/4/index.html




Out 6

Teste de stress (teste de carga) em um servidor RTMP

Escrito por DanielPedrinha em 1, 2.0, AR, BI, blog, C#, Curso, Cursos, Flex, free, Geral, O, on, Pessoal, Red5, RIA, Ria’s Geral, RTM, RTMP, S+S, serviço, servidor, streaming, Teste, Vídeo, Vídeos @ 10 6th, 2010 | via http://www.flexbrasilia.com.br/ | Sem comentários
DanielPedrinha
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Sempre que criamos um serviço é necessário testar se ele suporta a carga desejada. Com aplicações de streaming isso é ainda mais importante pois são aplicações que têm uma demanda razoável de todos os recursos do seu servidor como banda, processamento e memória. O pessoal da Smaxe disponibiliza algumas aplicações Freeware para trabalhar com vídeos [...]

(Read more…)

Set 14

Como conectar clientes usando RTMFP – Real-Time Media Flow Protocol

Escrito por DanielPedrinha em 1, 2.0, AR, Artigo, Artigos, as3, blog, C#, cliente, Diversos, english, exemplo, Exemplos, Flex, for, Geral, IE, Messaging, O, on, Red5, Ria’s Geral, RTM, RTMP, S+S, servidor, streaming, Tutorial, update, Vídeo @ 09 14th, 2010 | via http://www.flexbrasilia.com.br/ | Sem comentários
DanielPedrinha
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Translate to english. Update 07-10-2010: O nome do servidor Stratus foi atualizado para Cirrus, por isso os nomes foram alterados neste artigo. Em diversos artigos anteriores eu falei sobre o RTMP (Real-time Messaging Protocol) usando Red5 como servidor de Streaming de áudio e vídeo. Neste artigo vou falar do RTMFP (Ream-time Media Flow Protocol) da [...]

(Read more…)

Set 10

Iniciando com Open Source Media Framework – OSMF

Escrito por Leonardo França em .NET, 1, 4, 6, action, Actionscript, ActionScript 3, Actionscript 3.0, Actionscript3, Adobe, api, Aplicativos, app, AR, Artigo, Artigos, auto, back, bar, carregar, class, classe, classes, código, Componente, Componentes, control, Curso, Cursos, Download, engine, exemplo, Experiência do Usuário, filter, flash, flash builder, Flash Media Server, Flash Platform, Flex, for, framework, function, gc, Google, html, ide, IE, if, image, Iniciando, int, interface, Java, Javascript, layout, lite, live, Mate, menu, mg, NaN, O, on, opensource, Outros, padrão, PHP, player, progress, pt, RIA, Ria’s Geral, rss, RTM, RTMP, streaming, string, swf, TAT, template, UI, Ved, Vídeo, wave, web, window, XP @ 09 10th, 2010 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Open Source Media FrameworkO Open Source Media Framework – OSMF(antigo Strobe Media Framework) é um conjunto de componentes pré-programados para você usar em seus aplicativos multimidia, permite a facil implementação de recursos que tem como objetivo, enriquecer a experiência do usuário quando se trata de conteúdo multimidia para web.

O Open Source Media Framework – OSMF – permite a facil implementação de recursos que tem como objetivo, enriquecer a experiência do usuário quando se trata de conteúdo multimidia para web.

Dentre os recursos que podem ser facilmente implementados com OSMF incluem:

  • Veiculação de anúncios de vídeo template(VAST).
  • Media Abstract Sequencing Template (MAST).
  • Media RSS (MRSS).
  • Distribution Format Exchange Profile (DFXP).
  • Synchronized Multimedia Integration Language (SMIL).

Vamos fazer um primeiro exemplo de um player bem simples com o OSMF, nos próximos artigos, vamos adicionando mais funcionalidades.
Crie um projeto do tipo ActionScript Project no Flash Builder ou uma nova classe ActionScript 3.0 no Flash Professional CS5. Daremos o nome de “MyPlayerOSMF” estendendo a classe Sprite.

PLAIN TEXT
ACTIONSCRIPT3:

  1. package
  2. {
  3.     import flash.display.Sprite;
  4.  
  5.     [SWF(width="640", height="360", backgroundColor="0×000000",frameRate="25")]  
  6.     public class MyPlayerOSMF extends Sprite
  7.     {
  8.         public function MyPlayerOSMF()
  9.         {
  10.         }
  11.     }
  12. }

Temos nosso esqueleto, vamos entender algumas classes do OSMF. As classes mais importantes que devemos conhecer para criar players de multimidia são:

  • MediaPlayer – É o engine do seu player. Essa classe corresponde aproximadamente a um player de mídia atual. Possui os métodos e propriedades para interface de controle de ações do usuário como play, pause, seek, e stop.
  • MediaElement – mídia, como vídeo, áudio, imagem, texto e assim por diante. Esta classe representa nada e tudo o que um MediaPlayer pode tocar.
  • MediaFactory – converte uma url para objeto para que possa ser tocada pelo player. A classe DefaultMediaFactory instancia objetos MediaElement do tipo correto determinado vídeo, áudio, imagem ou outros tipos de mídia suportados como entrada.
  • MediaPlayerSprite – Fornece as instâncias da classe MediaContainer, da classe MediaPlayer e da classe DefeaultMediaFactory. A classe MediaPlayerSprite fornece a maneira mais fácil de criar um media player com OSMF.

Vamos deixar algumas url’s para carregar os videos usando download progressivo e streaming.

PLAIN TEXT
ACTIONSCRIPT3:

  1. private static const VIDEO_RTMP:String = "rtmp://cp67126.edgefcs.net/ondemand/mediapm/strobe/content/test/SpaceAloneHD_sounas_640_500_short";
  2. private static const VIDEO_HTTP:String = "http://mediapm.edgesuite.net/osmf/content/test/logo_animated.flv";

Iniciaremos com uma instância da classe MediaFactory converter a url para objeto e a classe MediaElement sera responsável por criar o elemento necessario de acordo com o que for carregado, video, imagem ou swf. Em seguida usaremos a classe MediaPlayer que contem a base para controlar o player, tem como autoplay = true como padrão.

PLAIN TEXT
ACTIONSCRIPT3:

  1. package
  2. {
  3.     import flash.display.Sprite;
  4.    
  5.     import org.osmf.media.DefaultMediaFactory;
  6.     import org.osmf.media.MediaElement;
  7.     import org.osmf.media.MediaFactory;
  8.     import org.osmf.media.MediaPlayer;
  9.     import org.osmf.media.URLResource;
  10.        
  11.     [SWF(width="640", height="360", backgroundColor="0×000000",frameRate="25")]  
  12.     public class MyPlayerOSMF extends Sprite
  13.     {
  14.         private static const VIDEO_RTMP:String = "rtmp://cp67126.edgefcs.net/ondemand/mediapm/strobe/content/test/SpaceAloneHD_sounas_640_500_short";
  15. private static const VIDEO_HTTP:String = "http://mediapm.edgesuite.net/osmf/content/test/logo_animated.flv";    
  16.        
  17.         private var mediaFactory:MediaFactory;
  18.         private var mediaElement:MediaElement;
  19.         private var mediaPlayer:MediaPlayer;
  20.         private var mediaContainer:MediaContainer;
  21.        
  22.         public function MyPlayerOSMF()
  23.         {
  24.             mediaFactory = new DefaultMediaFactory();
  25.             mediaElement = mediaFactory.createMediaElement(new URLResource(VIDEO_RTMP));
  26.                        
  27.             mediaPlayer = new MediaPlayer();
  28.             mediaPlayer.media = mediaElement;          
  29.         }
  30.     }
  31. }

O nosso player esta quase pronto, vamos adicionar um instancia da classe MediaContainer para inserir nosso player no palco. Segue o código completo.

PLAIN TEXT
ACTIONSCRIPT3:

  1. package
  2. {
  3.     import flash.display.Sprite;
  4.    
  5.     import org.osmf.containers.MediaContainer;
  6.     import org.osmf.layout.LayoutMetadata;
  7.     import org.osmf.media.DefaultMediaFactory;
  8.     import org.osmf.media.MediaElement;
  9.     import org.osmf.media.MediaFactory;
  10.     import org.osmf.media.MediaPlayer;
  11.     import org.osmf.media.URLResource;
  12.        
  13.     [SWF(width="640", height="360", backgroundColor="0×000000",frameRate="25")]  
  14.     public class MyPlayerOSMF extends Sprite
  15.     {
  16.         private static const VIDEO_RTMP:String = "rtmp://cp67126.edgefcs.net/ondemand/mediapm/strobe/content/test/SpaceAloneHD_sounas_640_500_short";
  17. private static const VIDEO_HTTP:String = "http://mediapm.edgesuite.net/osmf/content/test/logo_animated.flv";    
  18.        
  19.         private var mediaFactory:MediaFactory;
  20.         private var mediaElement:MediaElement;
  21.         private var mediaPlayer:MediaPlayer;
  22.         private var mediaContainer:MediaContainer;
  23.        
  24.         public function MyPlayerOSMF()
  25.         {
  26.             mediaFactory = new DefaultMediaFactory();
  27.             mediaElement = mediaFactory.createMediaElement(new URLResource(VIDEO_RTMP));
  28.            
  29.             var layout:LayoutMetadata = new LayoutMetadata();
  30.             layout.width = 640;
  31.             layout.height = 360;
  32.             mediaElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout);
  33.            
  34.             mediaPlayer = new MediaPlayer();
  35.             mediaPlayer.media = mediaElement;
  36.            
  37.             mediaContainer = new MediaContainer();
  38.             mediaContainer.addMediaElement(mediaElement);
  39.            
  40.             addChild(mediaContainer);
  41.         }
  42.     }
  43. }

Veja o player em funcionamento:

Para saber mais:
http://www.adobe.com/devnet/video/articles/osmf_overview.html
http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html
http://mediapm.edgesuite.net/osmf/swf/ExamplePlayer.swf

http://mediapm.edgesuite.net/osmf/content/test/logo_animated.flv

« Entradas anteriores |

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2750 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com