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

Reply via email to