Does anyone make SoundMixer.computeSpectrum() function to work? L.
On Sun, Mar 21, 2010 at 10:48 AM, Lucas Lain <[email protected]> wrote: > Thank you Henry. > > It didn't work. I'm still getting the security error :( > > I'm trying to play a streaming resource ... but it has nothing to do > with mi problem ... right? > > > > On Sun, Mar 21, 2010 at 10:16 AM, Henry Minsky <[email protected]> wrote: >> I am trying to recall if anything in the Laszlo runtime library loads sound >> from an external source when the >> LFC is initialized, but I don't think >> so. >> >> >> >> On Sun, Mar 21, 2010 at 9:08 AM, Lucas Lain <[email protected]> wrote: >>> >>> I can see the red line now! :) >>> The security error shows up when computeSpectrum is called. >>> I found this: >>> >>> "the Error #2121 happens when you try to call the computeSpectrum >>> function when another flash file with sound is loaded from a different >>> domain. >>> For example, if you have youtube open when trying to view a flash file >>> that uses computeSpectrum, it will fail because youtube did not grant >>> your domain access to get its sound info.... >>> It appears the only "solution" is to put your computeSpectrum in a >>> try/catch block (or use areSoundsInaccessable method before calling >>> computeSpectrum ) and simply notify the user that a flash file in a >>> different window is interfering with your sound visualizations!" >>> >>> But I'm not using flash in any window :( >>> >>> >>> On Sun, Mar 21, 2010 at 9:46 AM, Henry Minsky <[email protected]> >>> wrote: >>> > I tried to compile and run your example, as follows, and it ran without >>> > error for me. It displayed a red line >>> > >>> > <canvas> >>> > <class name="spectrum" extends="view"> >>> > <passthrough> >>> > import flash.display.Sprite; >>> > import flash.display.StageAlign; >>> > import flash.display.StageScaleMode; >>> > import flash.events.*; >>> > import flash.media.Sound; >>> > import flash.media.SoundChannel; >>> > import flash.media.SoundMixer; >>> > import flash.media.SoundTransform; >>> > import flash.net.URLRequest; >>> > import flash.utils.Timer; >>> > import flash.geom.Matrix; >>> > import flash.utils.ByteArray; >>> > import flash.text.TextField; >>> > import flash.text.TextFieldAutoSize; >>> > import flash.text.TextFormat; >>> > </passthrough> >>> > >>> > <attribute name="_ba" value="null"/> >>> > <attribute name="_gr" value="null"/> >>> > <method name="init"><![CDATA[ >>> > this._ba = new ByteArray(); >>> > this._gr = new Sprite(); >>> > this._gr.x = 20; >>> > this._gr.y = 200; >>> > >>> > canvas.sprite.addChild(this._gr); >>> > >>> > var time:Timer = new Timer(50); >>> > >>> > time.addEventListener(TimerEvent.TIMER, timerHandler); >>> > time.start(); >>> > ]]> >>> > </method> >>> > >>> > <method name="timerHandler" args="e:Event"><![CDATA[ >>> > >>> > var ba:ByteArray = this._ba; >>> > var gr:Sprite = this._gr; >>> > >>> > SoundMixer.computeSpectrum(ba, true); >>> > var i:int; >>> > gr.graphics.clear(); >>> > gr.graphics.lineStyle(0, 0xFF0000); >>> > gr.graphics.beginFill(0xFF0000); >>> > gr.graphics.moveTo(0, 0); >>> > var w:int = 2; >>> > for (i=0; i<512; i+=w) { >>> > var t:Number = ba.readFloat(); >>> > var n:Number = (t * 100); >>> > gr.graphics.drawRect(i, 0, w, -n); >>> > } >>> > ]]> >>> > </method> >>> > </class> >>> > <spectrum/> >>> > >>> > </canvas> >>> > >>> > Do you have the Flash player installed? >>> > Try running either in backtrace mode or without debugging enabled, and >>> > see >>> > if you can >>> > get more information about where the errors is coming from. In backtrace >>> > mode, you can click on the error to inspect it. In non-debug mode, the >>> > Flash >>> > debug player will give you a native Flash backtrace. >>> > >>> > >>> > On Sun, Mar 21, 2010 at 8:38 AM, Lucas Lain <[email protected]> >>> > wrote: >>> >> >>> >> Hello Henry, >>> >> >>> >> Thank you for your answer. I modified the code and I can compile now. >>> >> >>> >> But I can't see the sprite, and I'm getting a runtime error: >>> >> >>> >> ERROR @spectrum.lzx≈46: SecurityError: Error #2123 >>> >> >>> >> Any Ideas? Could you use this class? >>> >> >>> >> Best! >>> >> >>> >> L. >>> >> >>> >> >>> >> On Sun, Mar 21, 2010 at 1:47 AM, Henry Minsky <[email protected]> >>> >> wrote: >>> >> > Also you will need an extra arg to your handler method >>> >> > >>> >> > <method name="timerHandler" args="e:Event"> >>> >> > >>> >> > Because the contract for a AS3 event listener is that it needs to >>> >> > accept >>> >> > one >>> >> > argument. >>> >> > >>> >> > "This function must accept an Event object as its only parameter and >>> >> > must >>> >> > return nothing" >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > On Sat, Mar 20, 2010 at 11:39 PM, Henry Minsky >>> >> > <[email protected]> >>> >> > wrote: >>> >> >> >>> >> >> To get the sprite, just "canvas.sprite" ought to work, although the >>> >> >> cross >>> >> >> platform API to get the sprite is canvas.getDisplayObject() >>> >> >> >>> >> >> >>> >> >> >>> >> >> On Sat, Mar 20, 2010 at 5:21 PM, Lucas Lain <[email protected]> >>> >> >> wrote: >>> >> >>> >>> >> >>> Hello everybody, >>> >> >>> >>> >> >>> does anyone know how to add a sprite to an openlaszlo canvas or >>> >> >>> view? >>> >> >>> >>> >> >>> I wrote/modified the attached class to visualize the sound >>> >> >>> spectrum. >>> >> >>> >>> >> >>> This line is the one supposed to do the trick: >>> >> >>> >>> >> >>> canvas.content.sprite.addChild(this._gr); >>> >> >>> >>> >> >>> >>> >> >>> Best! >>> >> >>> >>> >> >>> >>> >> >>> -- >>> >> >>> Lucas >>> >> >> >>> >> >> >>> >> >> >>> >> >> -- >>> >> >> Henry Minsky >>> >> >> Software Architect >>> >> >> [email protected] >>> >> >> >>> >> >> >>> >> > >>> >> > >>> >> > >>> >> > -- >>> >> > Henry Minsky >>> >> > Software Architect >>> >> > [email protected] >>> >> > >>> >> > >>> >> > >>> >> >>> >> >>> >> >>> >> -- >>> >> Lucas >>> > >>> > >>> > >>> > -- >>> > Henry Minsky >>> > Software Architect >>> > [email protected] >>> > >>> > >>> > >>> >>> >>> >>> -- >>> Lucas >> >> >> >> -- >> Henry Minsky >> Software Architect >> [email protected] >> >> >> > > > > -- > Lucas > -- Lucas
