×
Namespaces

Variants
Actions
Revision as of 10:16, 14 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Archived:Capturando áudio, vídeo ou imagens e fazendo o upload do arquivo usando Flash Lite e APIBridge

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Não recomendamos o desenvolvimento em Flash Lite para aparelhos atuais da Nokia. Todos os artigos relacionados a Flash Lite foram arquivados. A plataforma Nokia Asha e os aparelhos recentes S40 não possuem mais o Flash Lite. O uso de Flash Lite em Symbian é limitado. Por exemplo, informações relativas à plataforma Nokia Belle podem ser encontradas neste link (em Inglês). Informações específicas de Flash Lite para aparelhos S40 ANTIGOS e Symbian podem ser encontradas na Flash Lite Developers Library (em Inglês).

Article Metadata

Artigo
Tradução:
Por lpvalente
Última alteração feita por hamishwillee em 14 May 2013
Featured Article
14 Mar
2010

Contents

Introdução

A APIBridge fornece plug-ins interessantes para desenvolvedores Flash Lite. Neste artigo, os plug-ins New File Services e File Upload são usados para se capturar uma image, som ou video e fazer o upload do arquivo para o servidor. Você pode obter mais informações sobre a APIBridge em [1].

Este artigo irá mostrar como implementar a captura de mídia e seu respectivo upload para o servidor, usando serviços oferecidos pelo Flash Lite 3.0.

Instalando as classes da API Bridge na IDE do Flash

Para comeaçar a usar a APIBridge com o Flash, primeiro você precisa baixar a APIBridge ActionScript API e instalá-la no seu ambiente de desenvolvimento. Você pode baixar a APIBridge ActionScript API aqui.

No Mac, as classes da APIBridge podem ser instaladas no diretório: Library/Application Support/Adobe/Flash CS4/en/Configuration/Classes/, e no Windows: Adobe/Flash CS4/en/Configuration/Classes/. Depois desse passo, as classes devem funcionar na sua IDE.

Testando no aparelho

Primeiro, você tem que instalar o pacote .sis da API Bridge no seu aparelho. Esse pacote .sis está dentro do arquivo .zip que está aqui.

Programando no Flash

Primeiro, você precisa criar uma UI (alguns botões e movie-clips) para o usuário. Por favor, procure mais informações sobre isso nos arquivos fonte (mais pro final do artigo). Eu irei falar aqui somente sobre a programação usando a APIBridge com o ActionScript 2.0.

O código seguinte deve ser inserido no primeiro frame da timeline. Importe as classes da APIBridge e configure o Flash para usar tela cheia, qualidade alta e desligue o teclado e as softkeys. A variável mediafilename irá guardar o mediafilename capturado (retornado da APIBridge). As últimas duas variáveis vão lidar com o alerta que será exibido ao usuário quando a mídia for enviada ao servidor, se erros ocorrerem no processo.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// importar a biblioteca APIBridge
import si.apibridge.*;

// configurar tela cheia
fscommand2("FullScreen","true");
// configurar como qualidade alta
fscommand2("SetQuality","high");
// desligar o teclado
fscommand2("DisableKeypadCompatibilityMode");
// desligar as softkeys
fscommand2("SetSoftKeys", "", "");

// o último mediafilename capturado
var mediafilename:String="";
// movieclip para alerta
var alert_mc:MovieClip;
// setInterval id
var alertID:Number;

Agora é hora de criar uma instância da APIBridge. Se existirem erros na APIBridge, um alerta será criado e exibido (nome da instância é Alert). O alerta será removido da tela depois de 2 segundos.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// criar uma instância da APIBridge, com uma callback para a função de erro
var bridge:APIBridge = new APIBridge(onBridgeError);

// tratar erros da APIBridge
function onBridgeError(outParam:Object):Void {
  alert_mc = this.attachMovie("Alert","alert_mc",this.getNextHighestDepth(),{_x:Stage.width/2,_y:Stage.height/2});
  alert_mc.text_txt.text = "APIBridge error " + outParam.ErrorCode + " " + outParam.ErrorMessage; 
  alertID = setInterval(removeAlert,2000);
}

// remover o alerta
function removeAlert():Void {
  clearInterval(alertID);
  alert_mc.removeMovieClip();
}

Um novo arquivo é gerado com o NewFileService na APIBridge. Aqui, temos apenas uma função definida para tratar disso tudo. A função recebe um parâmetro: Audio, Foto ou Video, e então chama NewFileServices com a função TakePhoto(). A função TakePhoto vai usar as funções nativas do aparelho para gravar áudio, vídeo ou tirar fotos. Depois que a mídia for capturada, uma das funções onPhoto, onVideo ou onAudio será chamada.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// criar o serviço newfile, para imagem, video ou audio
function takeMedia(media:String):Void {
  var fileService = bridge.Service("Service.NewFileService", "IDataSource");
  var inParams:Object = new Object();
  inParams.NewFileType = media;
  if (media == "Photo") fileService.TakePhoto(inParams, onPhoto);
  else if (media == "Video") fileService.TakePhoto(inParams, onVideo);
  else if (media == "Audio") fileService.TakePhoto(inParams, onAudio);
}

Exibindo a foto na aplicação. No timeline principal, temos o movie-clip principal que possui um frame para exibir a foto, video, ou audio, para o usuário (por favor veja os arquivos fonte). Aqui, primeiro vamos para frame da imagem no movie-clip principal e começamos a carregar a imagem com o MovieClipLoader. A imagem será redimensionada para caber na tela. Mediafilename será guardado para uso futuro durante o upload.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// função callback para a takePhoto (newfileServices)
function onPhoto(transactionID:Number, eventID:String, outParam:Object):Void {
  // acessar o frame da imagem no 'main' para exibir a imagem capturada
  main_mc.gotoAndStop("image");
  // load image
  var imageLoader:MovieClipLoader = new MovieClipLoader();
  var imageListener:Object = new Object();
  // guardar o mediafilename
  mediafilename = outParam.ReturnValue.Src.toString();
  // carregar a imagem
  imageLoader.loadClip(mediafilename,main_mc.image_mc);
  // redimensionar a imagem para caber na tela
  imageListener.onLoadComplete = function(target:MovieClip):Void {
    // fps based on onEnterFrame scaling
    target.onEnterFrame = function():Void {
      while(target._width > 480 || target._height > 320){
        target._xscale--;
        target._yscale--;
      }
      // redimensionamento feito, remover a função onEnterFrame
      delete this;
    }
  }
  // registar o 'listener' do imageLoader
  imageLoader.addListener(imageListener);
}

Exibindo o vídeo na aplicação. No movie-clip principal, existe um objeto de vídeo no segundo frame. Isso será usado para mostrar o vídeo.

Displaying video in Flash Lite application. In main movie-clip there is video object in second frame. Here we will shown taken video with it.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// função callback para a takePhoto (newfileServices)
function onVideo(transactionID:Number, eventID:String, outParam:Object):Void {
  // acessar o frame de vídeo no movie-clip principal para mostrar o vídeo que foi capturado
  main_mc.gotoAndStop("Video");
  // guardar o mediafilename
  mediafilename = outParam.ReturnValue.Src.toString();
  // carregar e reproduzir o vídeo
  main_mc.video.play(mediafilename);
}

Reproduzindo áudio na aplicação. Primeiro, crie um objeto Sound e use-o para carregar o áudio. A função onLoad() desses objetos Sound será executada depois que a mídia tiver sido carregada.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// função callback para a takePhoto (newfileServices)
function onAudio(transactionID:Number, eventID:String, outParam:Object):Void {
  // acessar o frame de imagens no movie-clip principal
  main_mc.gotoAndStop("Audio");
  // guardar o mediafilename
  mediafilename = outParam.ReturnValue.Src.toString();
  // criar o objeto de áudio
  var sound:Sound = new Sound();
  // carregar o áudio do arquivo
  sound.loadSound(mediafilename);
  // aqui o arquivo foi carregado
  sound.onLoad = function(ok:Boolean):Void {
    // tudo ocorreu bem
    if (ok) {
      // começar a tocar o som
      sound.start();
    }
  }
}

Os arquivos de mídia podem ser enviados para o servidor usando a função UploadFile da APIBridge. Nesse exemplo, um alerta será exibido ao usuário para informá-lo sobre o upload. O processo de upload é realizado com um objeto. O nome da variável que contém os dados binários do arquivo a ser enviado está em VarName. FileName é o seu mediafilename, e Url é o seu script de envio no lado do servidor (o código fonte está neste artigo, mais para frente). Os erros serão tratados na função onFileUpload (que mostra um alerta com códigos de erro).

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// enviar mídia para o servidor
function uploadMedia():Void {
  alert_mc = this.attachMovie("Alert","alert_mc",this.getNextHighestDepth(),{_x:Stage.width/2,_y:Stage.height/2});
  alert_mc.text_txt.text = "Uploading file " + mediafilename;
  // criar o objeto que será usado para o envio
  var inParams:Object = new Object();
  inParams.VarName = "fileName";
  inParams.FileName = mediafilename;
  inParams.Url = "http://your.server.ip.here/getFile.php";
  // enviar arquivo pro servidor
  bridge.UploadFile(inParams,onFileUpload);
}

// arquivo enviado
function onFileUpload(transactionID:Number, eventID:String, outParam:Object):Void {
  // algum erro aconteceu durante o processo
  if (outParam.ErrorCode != 0) {
    alert_mc.text_txt.text = "Error occured while uploading. " + outParam.ErrorCode;
    alertID = setInterval(removeAlert,2000);
    return;
  } else {
    alert_mc.text_txt.text = "Mediafile uploaded.";
    alertID = setInterval(removeAlert,2000);
    return;
  }
}

Na IDE do Flash, é necessário criar uma UI simples para a interação com o usuário. Por exemplo, podem ser criados alguns butões para chamar as funções descritas no artigo (Tirar foto, gravar áudio, gravar vídeo, e sair da aplicação). Aqui está um exemplo para tirar uma foto. Use algo similar para áudio e vídeo.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// botão da foto pressionado, começar a tirar a foto
photo_btn.onRelease = function():Void {
  takeMedia("Photo");
}

Armazenar a mídia no servidor

Aqui, usamos PHP para armazenar o arquivo enviado. Lembre-se de usar o diretório correto e de configurá-lo com todas as permissões. O nome do arquivo pode ser acessado no PHP através de $_FILES e fileName, com o nome real do arquivo armazenado em name.

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


// getFile.php
<?php
  // diretório completo para a pasta onde ficam os arquivos de mídia
  $content_dir = '/your/path/here/media/';
  // media filename
  $filename =  $_FILES['fileName']['name'];
  // mover do /tmp para o diretório dos arquivos
  move_uploaded_file($_FILES['fileName']['tmp_name'],$content_dir.$filename);
?>

Código fonte

Arquivo: MediaToServer.zip

O Device Object é usado nos fontes, dessa forma, use a aplicação Flash Lite no modo landscape. Faça o download a partir de here (S60_ActionScript_API_library_1_0.zip) e instale-o no mesmo diretório onde está a APIBridge.

This page was last modified on 14 May 2013, at 10:16.
131 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×