Archived:Capturando áudio, vídeo ou imagens e fazendo o upload do arquivo usando Flash Lite e APIBridge
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).
Dados do artigo
Artigo
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.


(no comments yet)