MEMOUK

ActionScript 3.0 SoundMixer.computeSpectrum はWindows/IEでloadmovieすると固まる バグ

ActionScript 3.0でサウンド波形を扱うメソッド
このサイトでも使っているのですが、
koba.gif
http://event.67.org/gainer/

SoundMixer.computeSpectrum
「 現在のサウンド波形からスナップショットを取得し、指定した ByteArray オブジェクトに配置します。」
音のその瞬間の波形の振り幅を取得できます。


とてもイイ感じのメソッドなのですが、次の条件が重なった場合に強制終了します。

・Windows
・IE6/7 (ActiveX版のPlayer)
・SoundMixer.computeSpectrumを使用しているswfが読み込まれている場合

最後の条件がくせ者で、単独で走っている場合は問題ないのですが、別のswfに呼び込まれている場合にのみ、強制終了します。
また強制終了するまでの時間は、数秒から数十秒の幅があります。

これを回避するには

・単独のswfで終わらせるか
・SoundMixer.computeSpectrumに関する処理を読み込む側のswfで処理するか
・次のようなスクリプトで回避します

ロクナナワークショップ Summer Camp 2008

public function enterFrameHandler(event:Event):void {
 try {
  SoundMixer.computeSpectrum(byte1_array,true,0);
  for (var i=0; i <256*2; i=i+9) {
  a=byte2_array.readFloat()*2;
  obj1.scaleZ=a;
 }
 } catch (e) {
//残念賞
 }
}

はい。すみません。回避はできません。
なのでtryでくくって落ちても気にしない方向でいきます。


(kani君ありがとう)

Posted by uk at 13:38 | パーマリンク | コメント (0) | トラックバック (0)

このエントリーのトラックバックURL:
http://www.67.org/blog/mt-tb.cgi/902

コメントを投稿

MEMOUKROKUNANA

SITE FEED

  • 個人やグループでの貸し切り受講、企業や学校への出張講座、各種イベントへの講師派遣もご相談ください

    出張講座・貸し切り講座

Search