logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Jul 31

Adobe LiveCycle Collaboration Service

Escrito por Leonardo França em 1, 2.0, 4, 6, Actionscript 3.0, Adobe, Adobe Flex, api, Aplicativos, AR, arte, BI, C#, class, Curso, Cursos, dados, Desenvolvedor, desenvolvedores, Desenvolvimento, Destaque, developer, exemplo, Exemplos, Experiências, flash, flash builder, Flash Player, Flex, free, if, image, int, live, LiveCycle, mg, O, on, PHP, player, portal, referencia, RIA, Ria’s Geral, S+S, Saas, SDK, serviço, Software, UI, Ved, web, WebCam, XP @ 07 31st, 2011 | 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 »



A Adobe lançou um serviço anteriormente conhecido com o codinome de Cocomo(Common Collaboration Model), logo em seguida passou a se chamar Adobe Flash Collaboration Service e agora é oficialmente parte da família LiveCycle, sendo chamado de Adobe LiveCycle Collaboration Service.
O LCCS tem como objetivo funcionar como um SAAS(Software as a Service) para simplificar e facilitar o desenvolvimento de aplicativos RIA baseados em multimidia. Permite que os arquitetos e desenvolvedores possam criar experiências de usuário mais envolvente e mais dinâmicas oferecendo suporte a multi-user, colaboração em real time para novos ou já existentes aplicativos RIA.

Alguns destaques:

  • Facilmente integrar chat, whiteboard, webcam e VoIP.
  • Desenvolver e implementar rapidamente aplicações com um SDK bem completo e com muito exemplos.
  • Bibliotecas para Adobe Flash e Flash Builder, para rodar no Flash Player 9 ou Flash Player 10(Alguns recursos como P2P só funcionam a partir do Flash Player 10).
  • Gerenciar usuários e os dados da sessão.
  • Construir suas aplicações em nuvem

Para começar a usar o LCCS, basta acessar o portal LCCS Developer Portal e entrar com seu login ou cadastrar-se. O portal serve para você administrar instancias das suas aplicações, você pode acompanhar o número de conexões, banda usada etc.

Modelo de cobrança
LCCS tem 3 diferentes metodos para cobrança:

  • Live Stream Bandwidth – $0.49 per GB
  • Push Messages – $0.10 per 1000 messages
  • User Minutes – $0.01 per Hour

Leia o FAQ para mais detalhes. Você tem uma cota free e pode usar até 15 dolares por mês.

Referencias:
http://www.flashrealtime.com/livecycle-collaboration-service-pricing/
https://portal.collaboration.adobelivecycle.com/

Jun 17

Novidades da versão Mango – Parte 2

Escrito por Alexandre Tadashi em .NET, 1, 2.0, 3.5, 4, 6, abas, análise, Análises, api, Aplicativos, app, AR, auto, back, bar, Beta, BI, bing, botão, bug, busca, C#, carregar, class, classe, cliente, código, collection, control, Controles, Curso, Cursos, dados, Debug, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, Dica, Diversos, Documentação, DRE, email, err, event, Evento, Eventos, exemplo, Ferramenta, flash, Flex, fonte, for, Formação, fundo, game, garbage, geo, Geral, Gráfico, Gravação, ide, IE, if, image, imagens, int, jogo, Jogos, linq, Linq to Sql, lista, live, map, maps, Melhores Práticas, menu, mg, Microsoft, mobile, monitor, Monitoramento, NaN, O, on, online, Outros, player, processo, produtividade, prova, pt, RIA, Ria’s Geral, S+S, serviço, Serviços, silverlight, Silverlight 4, SmartPhone, socket, Storyboard, Sun, tag, TAT, Tema, UI, Ved, Vídeo, Videobrush, Vídeos, Visual Studio, web, WebCam, window, windows, XAML, XP, zend @ 06 17th, 2011 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? 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 »

Sockets

Através do namespace System.Net.Sockets, o Windows Phone provê suporte a uma implementação gerenciada de sockets, permitindo que desenvolvedores possam ter um controle rigoroso ao acesso a redes, com esse recurso temos disponível um conjunto de API’s de alto nível, permitindo que o desenvolvedor crie aplicativos que interagem com um cliente utilizando de serviços existentes de TCP.

Existem muitas funcionalidades onde esse recurso pode ser utilizado, como pode exemplo, para criar aplicativos de FTP, e-mail e Chat, com sockets é possível criar aplicativos mais sofisticados e ricos, podendo utilizar de TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol).

Câmera e fotos

Existem duas formas de acessar a câmera no Windows Phone, através das API´s do próprio sistema operacional ou através dos recursos já existentes do Silverlight 4, com as APIs do Windows Phone você tem imagens de alta resolução, além de controle do auto foco, acesso ao modo do flash, entre outros recursos, já com os recursos do Silverlight 4 webcam API, você tem facilidade de gravar vídeos e áudios em arquivos, se você já possui códigos em alguma aplicação Silverlight, você poderá aproveita-los com poucas ou nenhuma modificação quanto ao acesso a webcam.

É possível ter um controle bem flexível da câmera fotográfica do smartphone, através do Windows Phone podemos ter um controle do auto foco da câmera, gerenciar o flash utilizado, acionar a captura da imagem, além de uma série de eventos que podemos utilizar através do Microsoft.Devices.PhotoCamera, no código XAML a representação da câmera pode ser feito através do recurso VideoBrush do Silverlight.

Push Notitications e Live Tiles

Notifications é um poderoso recurso que o Windows Phone implementou de maneira bem interessante, com ele podemos enviar e receber informações para o Windows Phone 7, essas mensagens são enviadas para um serviço da Microsoft, e o serviço online envia para o smartphone, podendo receber a mensagem em seu projeto. Você poderá obter a mensagem recebida e manipular as informações, existem três tipos de Notifications, o tipo RAW, Toast e Tile, resumidamente o primeiro permite receber informações diretamente em sua aplicação, o segundo permite receber um aviso no topo da tela do Windows Phone, a aplicação receberá a notificação mesmo que a sua aplicação não esteja em execução no momento. Já o tipo Tile, é uma notificação nos Tiles que ficam na tela principal do Windows Phone e pode ser acionado quando apertamos o botão Start do aparelho. Na versão Mango, temos mais recursos disponíveis para essas notificações, a notificação do tipo Toast agora pode receber um determinado link que vai para determinado local em sua aplicação e ainda pode passar parâmetros que você pode utilizar para ler e realizar alguma tarefa, dando mais poder para as notificações no Windows Phone, as notificações do tipo Tile também foram incrementadas, agora é possível utilizar um Tile com dois lados e que mude periodicamente ou ainda ter tiles secundários para a mesma aplicação.

img27763

Figura 1. Fundo do Tile

Profiler

Performance é um dos assuntos mais importantes quando estamos criando aplicativos em geral, principalmente quando a aplicação vai ser executada em dispositivos com recursos limitados, como é o caso de smartphones, com a versão Mango temos agora uma ferramenta que analisa o perfil da sua aplicação, possibilitando analisar e medir através de gráficos , diversos recursos utilizados.

A ferramenta é totalmente integrada com o Visual Studio, para iniciar o uso do recurso , basta carregar a sua aplicação e no menu Debug, localizar e clicar na opção “Start Windows Phone Performance Analysis”, Figura 2, e clicar em Launch Application, em seguida você executa a rotina que deseja monitorar em seu aplicativo e clica em Stop Profiling, um arquivo com extensão SAP será criado, a cada processo de analise, um arquivo é criado, e você poderá manter um histórico para futuras analises de melhorias. Dentre as informações que a ferramenta apresenta, estão os frame rates, que são os números de renderização da tela do telefone, expressada em frames por segundo (fps), a porcentagem de uso da CPU do telefone, o uso da memória do aplicativo medido em megabytes, a utilização de Storyboards e imagens carregadas, por fim temos um indicativo de quando os eventos do garbage collections foram acionados durante o monitoramento. Se você selecionar um determinado período, o Visual Studio apresentará informações detalhadas sobre diversos pontos do aplicativo.

img24163

Figura 2. Performance Analysis

img26173

Figura 3. Analise detalhada da aplicação

Emulador

O emulador também sofreu algumas melhorias, duas delas são muito interessantes , como a possibilidade de testar no emulador os sensores de acelerômetro, Figura 4, e localização. Agora podemos simular através do emulador a leitura desses sensores, não precisando ter um equipamento físico para poder criar uma aplicação, basta você utilizar o mouse que o emulador vai responder conforme a ação esperada pelo aparelho real. No caso da utilização de recursos de localização, você ainda conta com uma barra de ferramentas com controles de busca, inclusão de indicativos de localização e gravação da localização, o emulador ainda contém alguns outros recursos que talvez sejam disponibilizados na versão final, como a possibilidade de adicionar gravações referente as simulações.

img10650

Figura 4. Emulador

Device Status

O namespace Microsoft.Phone.Info fornece informações sobre o equipamento, na versão anterior, era utilizado a classe DeviceExtendedProperties para obter alguns dados sobre o equipamento, na versão Mango essa tarefa passa a ser realizada por DeviceStatus, você pode obter informações como o total de memória, a versão do hardware e o nome do fabricante do equipamento. Através do PowerSource, podemos verificar se o dispositivo está funcionando com bateria ou conectado a uma fonte de alimentação externa. Outro recurso disponível é a possibilidade de verificar se existe ou não um teclado físico no smartphone através da propriedade IsKeyboardPresent.

Local Database

Existem dois tipos de persistências no Windows Phone 7, o Transient Data e o Persistent Data, você pode manipular informações através de Isolated Storage, um recurso que permite registrar e recuperar informações no próprio aparelho, essa forma de persistência de dados é chamada de “Persistent Data”, ou armazenar informações na memória, Transient Data, sua aplicação pode manipular esses dados conforme o seu ciclo de vida, porém na versão mango uma nova forma de Persistent Data foi adicionada, o local Database.

Agora temos a possibilidade de utilizar uma base de dados local em uma aplicação, antes da disponibilização das ferramentas betas da versão mango para desenvolvedores e da documentação oficial, falava-se que uma versão do SQL CE estaria disponível para ser utilizada, porém em sua documentação oficial a base de dados é citada somente como local database, uma versão própria do Windows Phone, um grande diferencial de produtividade está no suporte ao LINQ to SQL para operações em base de dados.

O local database permite armazenar dados relacionais dentro de um ambiente residente no Isolated Storage, por estar dentro do Isolated Storage, ele somente pode ser acessado pela aplicação correspondente, e roda somente no processo do aplicativo, não sendo executada com um serviço continuo, a manipulação de dados locais são acessados apenas através de LINQ to SQL, não tendo suporte ao Transact-SQL.

Launchers and Choosers

Os Launchers e Choosers são APIs que acessam alguns recursos do sistema operacional, eles disponibilizam recursos complexos deixando transparentes para que o desenvolvedor através de API´s, os Launchers são tarefas que somente são iniciadas pela sua aplicação, teoricamente, você não tem nenhum tipo de retorno da API, somente você pode inicia-los , passando os parâmetros que ela vai utilizar para realizar a tarefa. Já os Chooser também iniciam uma tarefa, mas a principal diferença é que os Choosers retornam algum dado que você poderá trabalhar em sua aplicação, um exemplo seria o EmailAddressChooserTask, com ele podemos apresentar ao usuário a lista de e-mails cadastrados no aparelho, quando um e-mail é selecionado, podemos obter essa informação e utilizar para enviar um e-mail através de um Launcher chamado EmailComposeTask, que não retorna nenhuma informação,dessa forma algumas tarefas que poderiam ser bem complexas são facilitas com os Launchers e Choosers. Na versão Mango temos novos Launchers and Choosers adicionados as API´s são eles:

Address Chooser Task : Inicia a lista de contatos da aplicação e permite a seleção.

Game Invite Task : API utilizada em jogos aprovados no Xbox Live que permite convidar jogadores para uma partida multi-player em um Game.

Save Ringtone Task : Permite gravar um arquivo MP3 ou WMA na lista de ringtones do sistema operacional.

Bing Maps Task : Inicia o Bing Maps, permitindo setar a propriedade center com uma posição geográfica.

Bing Maps Directions Task : Inicia o Bing Maps permitindo informar e receber informações sobre dois pontos.

Conclusão

O Windows Phone 7 chegou trazendo uma nova plataforma de desenvolvimento para dispositivos móveis, a Microsoft utilizou o que existe de mais moderno para criar o seu sistema operacional, dando suporte as melhores práticas de desenvolvimento e integração com aplicativos, a versão Mango contém mais de 500 novos recursos e confirma o investimento da Microsoft em sua plataforma mobile.

Out 24

[Adobe Flex & AIR] Szoter

Escrito por Erko Bridee em .NET, 1, 2009, 4, 6, action, Adobe, Adobe Air, Air, api, AR, auto, back, BI, blog, camp, class, Desktop, Dica, err, Ferramenta, Flex, git, ide, IE, if, image, imagens, int, internet, Java, lite, mg, O, on, online, Partilha, player, redeRIA, RIA, Ria’s Geral, screen, site, SQLite, Tree, UI, Vídeo, web, WebCam @ 10 24th, 2010 | via http://blog.erkobridee.com | Sem comentários
Erko Bridee
? 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 »



Aplicação para edição de imagens, do gênero anotar algo na imagem, circular um campo. Com esta aplicação agora aposento o MS Paint no trabalho hehe

 

szoter_site

Szoter.com

É uma ferramenta para edição rápida de imagens, sendo que esta você pode adquirir de uma URL, ou através de sua Webcam, ou então através de uma ScreenShot (imagem da tela do seu computador). A imagem resultado você pode salva-la em seu computador ou então publicar na internet.

Esta aplicação te disponibiliza versões tanto web (Flex), quanto desktop (AIR), porém em ambas as versões para tirar uma ScreenShot lhe será necessário autorizar e executar uma aplicação Java para isto.

 

A seguir um vídeo de uso da aplicação:

 

Versão Web

szoter_flex

Imagem compartilhada na internet: http://i.szoter.com/38770ff326556d4c

 

Versão Desktop

szoter_air


Veja também:

  • [ Java Desktop ] Processamento de Imagens Digitais
  • [Adobe AIR] Simple Diagrams
  • Adobe AIR e SQLite
  • API – Xuggler : edição de vídeo em tempo real
  • Super Street Fighter 4 resurge juntamente com as fases bonus
Set 28

Flash Player no PlayStation 3

Escrito por Leonardo França em 1, 4, 6, Access, action, Actionscript, ActionScript 3, Actionscript 3.0, Adobe, api, app, AR, Artigo, BI, blog, Blogs, Botões, browser, class, exemplo, flash, Flash Platform, Flash Player, for, FullScreen, game, IE, if, image, int, mg, O, on, PHP, platform, player, ps3, pt, realidade aumentada, rest, RIA, Ria’s Geral, screen, TAT, Teste, UI, wave, web, WebCam, wii @ 09 28th, 2010 | via http://www.leonardofranca.com.br | 1 comentário
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 »



Depois que criei o artigo sobre Flash e Nintendo Wii, mandei para alguns amigos para que testassem em seus equipamentos. Dentre eles, meu irmão teve a curiosidade de testar também em seu PlayStation 3.
Bom, eu já tinha conhecimento de que o PlayStation 3 tinha suporte ao Flash Player, restava saber a versão e de que como a aplicação pode ser utilizada. No caso do Flash Player, vi que ele suporta até o momento a versão 9 (PS3 9.0.159.0) e que rodará pelo browser(baseado no Mozilla – o NetFront) assim como no Nintendo Wii(baseado no Opera).
Veja você mesmo o exemplo criado para o Nintendo Wii rodando no PlayStation 3 :D

Estou preparando mais alguns testes específicos para o PlayStation 3, se roda ActionScript 3.0, o uso dos botões e o novo PlayStation Move que vira com uma WebCam, ou seja, possibilidades interessantes com uso de realidade aumentada com a Flash Platform no PlayStation 3 :D

Set 2

Capturando imagem da webcam no Flex

Escrito por Gabriel Versallini em 1, 4, 6, Action Script, Adobe, app, AR, as3, auto, BI, Bindable, codec, collection, Componente, control, Controls, demo, Dica, encode, encoder, event, events, flash, Flex, function, html, ide, IE, if, image, Java, label, layout, MXML, NaN, O, on, pt, relatório, Relatórios, RIA, Ria’s Geral, string, web, WebCam, XML @ 09 2nd, 2010 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? 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 »

Fala, galera #soudev.

Estou preparando um post ensinando como criar relatórios no iReport e exibi-los no Flex através do componente xViewer ou Java (estou avaliando ainda), mas enquanto isso, segue uma dica de como capturar imagem da webcam.

[as3]

layout="absolute"
creationComplete="initCam()"
width="358" height="212">


import flash.media.Camera;

import mx.collections.*;
import mx.controls.*;
import mx.events.*;
import mx.graphics.ImageSnapshot;
import mx.graphics.codec.JPEGEncoder;
import mx.rpc.events.ResultEvent;

[Bindable]
private var imagemBase64:String;

[Bindable]
private var imagemWebcam:ImageSnapshot;

private function initCam():void {
var camera:Camera = Camera.getCamera();
Webcam.attachCamera( camera );
}

private function Capture():void {
imagemWebcam =ImageSnapshot.captureImage( Webcam, 0, new JPEGEncoder( 100 ));
imagemBase64=ImageSnapshot.encodeImageAsBase64( imagemWebcam );
foto.source = imagemWebcam.data;
foto.graphics.clear();
}

private function Limpar():void {
foto.unloadAndStop(false);
}

]]>




[/as3]

Veja a aplicação funcionando:

Divirta-se.
Até a próxima!

Ago 27

Detectando movimentos da webcam com Adobe Flash

Escrito por Leonardo França em 1, 2009, 4, 6, action, Actionscript, ActionScript 3, Actionscript 3.0, Actionscript3, Adobe, Adobe Air, Adobe Flex, Air, api, app, AR, back, bar, builder 4, class, classe, classes, código, Componente, control, cs4, Curso, Cursos, dados, Desktop, Download, event, EventListener, Evento, exemplo, filter, flash, flash builder, Flash Builder 4, Flash Player, Flex, Flex 3, Flex 4, fonte, for, framework, function, gc, Google, handle, html, ide, IE, if, image, int, interface, Java, Javascript, label, library, lite, live, Livro, Livros, lógica, menu, mg, motion, movimento, MXML, O, on, PHP, platform, player, produto, programação, progress, pt, reference, RIA, Ria’s Geral, Scroll, spark, swf, tag, Tema, Treinamento, UI, Ved, wave, web, WebCam, window, XML @ 08 27th, 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 »



Um recurso interessante e que pouca gente conhece no Flash Player ou Adobe AIR, é que além de acessar recursos como a webcam do usuário, ele pode também detectar se há ou não movimentos na camera. Isso pode ser útil se você está implementando um sistema de stream ao vivo e quer economizar a banda usada. Por exemplo, só será publicado o stream se a camera tiver algum movimento.

O Flash Player ou Adobe AIR, além de acessar recursos como a webcam do usuário, pode também detectar se há ou não movimentos na camera.

Vamos ver um exemplo usando o Adobe Flash Professional CS5 e com Flash Builder 4(usando o framework Flex 4).

Adobe Flash Professional CS5

  • Crie um arquivo do tipo ActionScript 3.0
  • Aperte F11 para abrir a library, peça para criar um novo simbolo do tipo "video":

    Library->New Video

  • Aparecerá uma nova janela, de o nome de "cam" e deixe a opção "Video (ActionScript-controlled)" selecionada:

    cam

  • Arraste o componente que você acabou de criar para o stage e de o nome de instância de "cam", depois redimesione para 320x240.
  • Arraste um componente do tipo ProgressBar da library User Interface. Dê o nome de instância "pbar".
  • Feito isto, você deve ter algo parecido com isto:

    Stage pronto para começar a programação

Temos nosso stage pronto para começar a programação ActionScript 3.0. Vamos começar com o Flash Player pedindo para ter acesso a webcam e em seguida colocar a imagem da webcam em nosso componente de video.

PLAIN TEXT
ACTIONSCRIPT3:

  1. myCam = Camera.getCamera();
  2. cam.attachCamera(myCam);

Agora basta fazer com que nosso filme escute o evento "ActivityEvent" da webcam.

PLAIN TEXT
ACTIONSCRIPT3:

  1. myCam.addEventListener(ActivityEvent.ACTIVITY,handlerMotion);

E no método handlerMotion, implementamos as ações na ProgressBar.

PLAIN TEXT
ACTIONSCRIPT3:

  1. function handlerMotion(evt:ActivityEvent):void
  2. {
  3.     trace(evt.target.activityLevel);
  4.     pbar.setProgress(evt.target.activityLevel,100);
  5.     if(evt.target.activityLevel <10)
  6.     {
  7.         trace("muito quieto! =õ(");
  8.     }
  9.     else
  10.     {
  11.         trace("eba! festa!!! \o/\O/\o/");
  12.     }
  13. }

Veja o exemplo em funcionamento:

Adobe Flex 4
Agora veremos um exemplo usando o Adobe Flex, vou capturar a camera usando o componente VideoDisplay.

  • Crie um projeto do tipo web(Flex) ou desktop(AIR).
  • Arraste um componente do tipo VideoDisplay e outro do tipo ProgressBar para o palco.
  • Devemos ter algo parecido com isso:
    PLAIN TEXT
    MXML:

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
    3.                xmlns:s="library://ns.adobe.com/flex/spark"
    4.                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="450" minHeight="400" width="450" height="400">
    5.     <s:VideoDisplay id="cam" x="48" y="38" width="360" height="240"/>
    6.     <mx:ProgressBar id="pbar" x="125" y="297"/>
    7. </s:Application>

Basta implementar a programação ActionScript agora, é bem parecido com o modo de como fizemos no Flash. Mudaremos pouca coisa no código ActionScript 3.0.

PLAIN TEXT
ACTIONSCRIPT3:

  1. protected function application1_creationCompleteHandler(event:FlexEvent):void
  2. {
  3.     pbar.mode = "manual";
  4.     myCam = Camera.getCamera();
  5.     var vd:Video = new Video(320,240);
  6.     vd.attachCamera(myCam);
  7.     cam.addChild(vd);
  8.     myCam.addEventListener(ActivityEvent.ACTIVITY, handlerMotion);
  9. }
  10.  
  11. private function handlerMotion(evt:ActivityEvent):void
  12. {
  13.     trace(evt.target.activityLevel);
  14.     pbar.setProgress(evt.target.activityLevel,100);
  15.     if(evt.target.activityLevel <10)
  16.     {
  17.         pbar.label = "muito quieto! =õ(";
  18.     }
  19.     else
  20.     {
  21.         pbar.label = "eba! festa!!! \o/\O/\o/";
  22.     }
  23. }

Agora é so aplicar a lógica para que seja transmitido ou não o stream da webcam do usuário.

DOWNLOAD SOURCE FLASH

DOWNLOAD SOURCE FLEX

Para saber mais:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html?allClasses=1

Livros recomendados:
Adobe Flash CS4 Professional Como Fazer 100 Técnicas Essenciais
Flex 3 em Ação
Adobe Flex 3 Treinamento Direto da Fonte

Ago 25

Capturando uma imagem na WebCam e salvando no servidor

Escrito por Daniel Schmitz em 1, 2009, 4, 6, Adobe, AMF, amfphp, apache, app, AR, arte, Artigo, BI, botão, bug, class, classe, código, código fonte, Componente, control, Controls, DataProvider, demo, err, erro, error, event, events, Exemplos, firefox, flash, Flex, fonte, for, Formação, function, Gravação, ide, IE, if, image, imagens, int, itemRenderer, label, layout, library, lista, Messaging, mg, MXML, O, on, padrão, PHP, pt, Remoting, RIA, Ria’s Geral, RoR, server, servidor, spark, string, Teste, UI, uint, web, WebCam, XML @ 08 25th, 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 »

Seguindo o artigo anterior, iremos agora utilizar o Flex em conjunto com o PHP para salvar as imagens no servidor. A conexão entre o Flex e o PHP será realizada pelo AMFPHP.

Este artigo teve uma grande ajuda do Bruno Santana, que nos mandou o código sobre a gravação do arquivo pela webcam.

Pré requisitos

  • Wamp Server instalado
  • Biblioteca AMFPHP – http://www.amfphp.org/ 

 

Passos iniciais

  • Cria a pasta c:wampwwwFlexFoto
  • Crie o projeto FlexFoto. Atenção na parte de definição do Output Folder:

image 

e

image

  • Copie a pasta amfphp do zip para c:wampwwwFlexFoto
  • O esquema de pastas fica como na figura a seguir:

image

Agora vamos configurar o services-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <services>
        <service id="amf-service"
            class="flex.messaging.services.RemotingService"
            messageTypes="flex.messaging.messages.RemotingMessage">
            <destination id="amf">
                <channels>
                    <channel ref="amf-endpoint"/>
                </channels>
                <properties>
                    <source>*</source>
                </properties>
            </destination>
        </service>
    </services>
    <channels>
        <channel-definition id="amf-endpoint"
            class="mx.messaging.channels.AMFChannel">
            <endpoint uri="amfphp/gateway.php"
                class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>
    </channels>
</services-config>

E configuramos o services-config.xml nas propriedades do projeto Flex:

image

Agora vamos fazer um teste de conexão. Crie a seguinte classe: HelloWorld.php em www/FlexFoto/amfphp/services

<?php
class HelloWorld
{
  function Say()
  {
    return "Hello World from amfphp";
  }
}

E no Flex, adicione o seguinte código:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
		   xmlns:s="library://ns.adobe.com/flex/spark"
		   xmlns:mx="library://ns.adobe.com/flex/mx"
		   minWidth="955" minHeight="600">

<fx:Declarations>
	<s:RemoteObject id="HelloWorld"
	                   destination="amf" source="HelloWorld">
		<s:method name="Say" result="OnSayResult(event)"/>
	</s:RemoteObject>
</fx:Declarations>

<fx:Script>
	<![CDATA[
		import mx.controls.Alert;
		import mx.rpc.events.ResultEvent;

		protected function OnSayResult(e:ResultEvent):void
		{
			mx.controls.Alert.show(e.result.toString());
		}
	]]>
</fx:Script>

<s:Button label="Hello World">
	<s:click>
		<![CDATA[
		HelloWorld.Say();
		]]>
	</s:click>
</s:Button>

</s:Application>

Teste a aplicação. Veja inicialmente se a aplicação abre com o endereço "localhost" e não "c:….". Clique no botão e verifique se a mensagem "Hello World from AMFPHP" surgir. Se for algum erro, você precisa investigar o erro através da mensagem de erro padrão do log de erros do wamp (c:wamplogsapache_error.php). Se não achou nada, use o Firefox+Firebug+Flashbug ou então use o Charles Proxy(http://www.charlesproxy.com/)

Configurando a WebCam

Esta parte é tranquila, já que vimos isso no artigo anterior. Apague o “hello world” do teste de conexão e faça:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   minWidth="955" minHeight="600">

	<fx:Declarations>
		<s:RemoteObject id="Foto"
		               destination="amf" source="Foto">

		</s:RemoteObject>
	</fx:Declarations>

	<mx:VideoDisplay id="webcam"
				 	 width="160" height="120"
					 top="100"
					 left="100"
					 >
		<mx:creationComplete>
			<![CDATA[
				webcam.attachCamera(Camera.getCamera());
			]]>
		</mx:creationComplete>

	</mx:VideoDisplay>

	<s:Button label="Salvar!!" top="50" left="150">

	</s:Button>

</s:Application>

Salvando a imagem no servidor

Até aqui apenas exibimos a câmera e o botão salvar. Vamos agora dar a funcionalidade necessária para enviar a imagem da WebCam para o servidor. Crie o arquivo Foto.php na pasta services, com o seguinte conteúdo:

<?php
class Foto
{
 function __construct()
 {

 }

 function Save($fotoAsString)
 {
	//obtém um id unico para o arquivo
	$nomeArquivo = uniqid();

	//configura o nome do arquivo
	$nomeImagem = "imagem/{$nomeArquivo}.jpg";

	//abre o arquivo. A opção w vai criá-lo, caso nao exista
	$arquivo = fopen($nomeImagem, 'w');

	//escreve no arquivo
	fwrite($arquivo, base64_decode($fotoAsString));

	return "ok";

 }
}

Aqui, criamos no método Save uma rotina para salvar a imagem no disco. Isso é feito graças a transformação da foto em string e na sua volta, pelo método base64_decode.

Exibindo as imagens gravadas no Flex

Assim que a foto é gravada, a reqisição feita pelo Flex volta, com um "ok". Então podemos usar outra rotina para ler todas as imagens e apresentá-las no flex:

<s:List
	id="exibirImagens"
	top="10"
	left="150"
	right="10"
	bottom="10"
	width="530"
	height="400"
	>
	<s:layout>
		<s:TileLayout
			requestedColumnCount="5"
			requestedRowCount="8"
			horizontalGap="2"
			verticalGap="2"/>
	</s:layout>
	<s:itemRenderer>
		<fx:Component>
			<mx:Image source="{data}" />
		</fx:Component>
	</s:itemRenderer>
</s:List>

No código acima, criamos uma lista do tipo tile, cujo o itemrenderer é um componente do tipo image.

Para preencher esta lista, usamos o seguinte código:

protected function OnGetAll(event:ResultEvent):void
{
	exibirImagens.dataProvider = new ArrayList((event.result as Array));
}

Ou seja, sempre que chamamos o método GetAll, o php se encarrega de obter uma lista de imagens e retorná-la para o Flex. Com esta lista preenchemos o dataProvider da lista de imagens que possui o itemRenderer.

Para finalizar, o codigo php do método GetAll():

function GetAll()
{
	//http://snipplr.com/view/742/read-images-of-directory/
	$folder = opendir("imagem");
	$pic_types = array("jpg");
	$index = array();

	while ($file = readdir ($folder)) {
		if(in_array(substr(strtolower($file), strrpos($file,".") + 1),$pic_types))
		{
			array_push($index,"amfphp/services/imagem/$file");
		}
	}
	closedir($folder);	

	return $index;
}

O código php lê o diretório e retorna uma array com o caminho completo da imagem.

O resultado final é visto na tela abaixo:

image

Código fonte

Ago 23

Como capturar a imagem da WebCam, e salvar no disco

Escrito por Daniel Schmitz em 1, 2009, 3.5, 4, 6, Adobe, app, AR, arte, Artigo, Artigos, audio, BI, bitmap, blog, Blogs, botão, codec, código, código fonte, Componente, Desenvolvimento, encode, encoder, exemplo, Exemplos, flash, flash media, Flash Media Server, Flash Media Server 3.5, Flash Player, Flex, Flex 3, fonte, for, Geral, html, ide, IE, image, label, library, Livro, Mac, map, MXML, NaN, O, on, player, pt, reference, RIA, Ria’s Geral, server, site, spark, UI, Vídeo, web, WebCam, XML @ 08 23rd, 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 »

Iniciamos hoje alguns artigos sobre a captura de imagem provenientes da WebCam do usuário. Inicialmente, algo simples apenas para nos ambientarmos com toda a estrutura. É válido lembrar que o Flash Player possui um bom suporte para capturar imagem/som do computador. No exemplo a seguir, iremos fazer isso de forma muito rápida:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
		   xmlns:s="library://ns.adobe.com/flex/spark"
		   xmlns:mx="library://ns.adobe.com/flex/mx"
                   minWidth="955" minHeight="600">

<s:creationComplete>
	<![CDATA[

	//cam é a instância de sua WebCam
	//Geralmente surge uma mensagem de permissão ao usuário
	var cam:Camera = Camera.getCamera();

	// Aqui inserimos a instância da câmera no
	// componente VideoDisplay
	webcam.attachCamera(cam);

	]]>
</s:creationComplete>

<mx:VideoDisplay id="webcam"
	 width="320" height="240"
	 top="100"
	 left="100"
				 />

<s:Button id="salvar" label="Salvar"
		  top="350"
		  left="150">
	<s:click>
		<![CDATA[
		import mx.graphics.ImageSnapshot;
		import mx.graphics.codec.JPEGEncoder;

		//Primeiro criamos a imagem Bitmap da câmera
		var imageBitmapData:BitmapData;
                imageBitmapData= ImageSnapshot.captureBitmapData(webcam); 

		//Depois transformamos essa imagem em bytecodes
		var encoder:JPEGEncoder = new JPEGEncoder();
		var rawBytes:ByteArray = encoder.encode(imageBitmapData);

		//FileReference é usado para salvar a imagem no disco
		new FileReference().save(rawBytes,"WebCam.jpg");

		]]>
	</s:click>
</s:Button>

</s:Application>

Veja o exemplo aqui (Botão direito do mouse para ver o código fonte)

Este exemplo rápido foi retirado dos sites: RiaCodes e Luiz Henrique Angeli

No próximo artigo iremos criar uma tela de cadastro que captura a imagem, o que está tornando muito usual hoje em dia!

ps: Renato, esta parte de gravar audio/vídeo pela web é complexa !! Eu recomendo o livro: Flex 3 + Flash Media Server 3.5, do nosso amigo Carlos Eduardo.

Jul 5

Autenticando usuarios no Flash Media Server com Flash Media Live Encoder

Escrito por Leonardo França em 1, 3.5, 4, 6, Adobe, api, AR, audio, class, encode, encoder, english, err, erro, error, flash, flash media, Flash Media Server, Flash Media Server 3.5, Flash Player, gratuito, ide, if, image, int, live, mg, O, on, PHP, player, Plugin, pt, rest, RIA, Ria’s Geral, RoR, server, servidor, site, Software, string, tag, TAT, UI, uint, variados, web, WebCam @ 07 5th, 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 »



O Adobe Flash Media Live Encoder é um software gratuito que a Adobe oferece para que você possa utilizar para transmitir stream diretamente para um servidor Flash Media Server e distribuir para seu site ou aplicativo.
Dentre as opções disponiveis estão:

  • High Quality Encode
  • H264 / VP6 Video
  • AAC / MP3 Audio
  • Command-line
  • Error Handling
  • VITC Timecode
  • Pre-processing
  • Live Metadata
  • Local Archive
  • DVR Support

Com suporte aos mais variados dispositivos de captura de video como Webcam, SDI, Composite, Component, Firewire.
Há casos em que você necessita restringir o acesso ao Flash Media Server atraves do Flash Media Live Encoder, para isso a Adobe criou um plugin que é instalado no seu servidor Flash Media Server, o Flash Media Server Authentication Add-in.
Para instalar esse plugin, siga os seguintes passos:
Baixe e instale o Flash Media Server Authentication Add-in
https://www.adobe.com/cfusion/entitlement/index.cfm?e=fmle3
Em seguida use o prompt de comando e vá até o diretorio conf do Flash Media Server
C:Arquivos de programasAdobeFlash Media Server 3.5conf
Para criar um novo usuário basta usar o comando:

users add -u user -p 123

Onde user é o login e 123 é a senha
Perceba que no diretorio C:Arquivos de programasAdobeFlash Media Server 3.5conf agora existem mais dois arquivos, users.exe e users.dat, os logins e senhas são salvos em users.dat
Agora basta abrir o Flash Media Live Encoder e tentar conectar, ele pedirá login e senha.
Uma das vantagens do Flash Media Live Encoder é que ele reconhece mais dispositivos de captura que o Flash Player.

Mais:
http://www.adobe.com/products/flashmediaserver/flashmediaencoder/
http://www.adobe.com/support/documentation/en/flashmedialiveencoder/

Translations:
English Version

Jan 29

LCCS – Collaboration Services.

Escrito por Mário Santos em 4, Action Script & MXML, Adobe, Air, Apresentação, Artigos, class, Componente, Exemplos, flash, Flex, Flex Builder, FMS, for, Formação, Geral, Google, gratuito, if, image, LiveCycle, Notícias, O, Partilha, portal, RIA, Ria’s Geral, SDK, serviço, Serviços, servidor, tag, Tech, Tecnologia, Tema, UI, Ved, web, WebCam @ 01 29th, 2010 | via http://msdevstudio.com/blog | Sem comentários
Mário Santos
? 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 »

afcsUm dos serviços do qual pouco se ouviu falar, mas que no entanto pode-se tornar muito util… principalmento porque  muitas das melhores alternativas viraram comerciais.

Ja se chamou Cocomo, Adobe Flash Collaboration Services e agora LiveCycle Collaboration Service. O sistema é simples para o usuário final. Trata-se de uma “Sala” virtual que pode ser acedida por qualquer aplicação feita no Flex para que uma ou mais pessoas possam participar ativamente quer num chat, numa apresentação, partilhar documentos, webcam, um dashboard personalizado ou até um componente flex e muito mais…. infelismente ainda não possuir Partilha de ecrã… Esse serviço ainda está em poder absoluto da adobe.

O sistema parece tratar-se de um servidor FMS + LiveCycle e conta com uma administração Online. Apesar de não ser completamente gratuito ele permite o uso total do sistema segundo cotas mensais, mensalmente possuimos gratuitamente $US15 que podemos gastar em “transferencias / dados / lagura de banda” e que podem seer geridos nesta mesma conta. A conta permite a criação de salas e o acesso via connectnow para o public geral.

Para os desenvolvedores, basta acederem ao portal, registarem uma conta ou usarem a vossa conta da adobe no serviço, depois basta fazer o download do SDK (Explorer). Este SDK Explorer é uma aplicação AIR que vos apresenta passo a passo toda a informação necessária para usarem o serviço. Podem encontrar exemplos, as informações de como instalar o sdk no flex builder, videos, swc’s, um gestor de salas, permissoes e dados e mto mais…

Segue o esquema do seu funcionamento e um pequeno exemplo…(...)
Leia o resto de LCCS – Collaboration Services. (94 palavras)


© Mário Santos em TSW - That Should Work, 2010. |
Link Permanente |
Sem comentarios |
Adicionar ao
del.icio.us -
Stumble it -
Google Bookmark -
technorati


Mais artigos relacionados nas categorias: collaboration, Flash, Flex, fms, liveCycle, services, web cam chat

« 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 2795 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