記事一覧

2008年03月25日

 flashメモ。
●computeSpectrum() は全部の音まとめて拾うだけしかできないのか?
続き
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("VOCAL_LEFT.mp3");
snd.load(req);
var channel:SoundChannel = snd.play( 0 );
 で、これとは別にBGM用のbgm_channelつくって、
 computeSpectrum() でVOCALだけのを拾いたいんだけどサッパリできる気がしない。

・いまのとこ
 computeSpectrum() はそのFlash単体どころか他のも拾う様子。
 ニコニコとかようつべとかでなんか流してたらそっちも反映する香り? ようつべは確認。ちょっと検証する。これは違うブラウザや、プレイヤーとブラウザ、等なら平気だったり。セキュリティサンドボックス侵害が出るとのことなんだけど出ないで普通に拾うな。ローカルのとだからか。ローカル前提だけどアップして検証もしないとでしょうか。他で音鳴らすのは想定外だから注意書きしておけばよいとしておく。

 拾えないのはマイクとストリームとタイムライン配置のもの。やろうとしてる外部は一緒にされる。どうしよ。
 computeSpectrum() の直前で
var mySoundTransform:SoundTransform = new SoundTransform(0, 0);
bgm_channel.soundTransform = mySoundTransform;
で音量の調整して、computeSpectrum()直後に戻せば強引にいけるかなと思ったりするけどまるでダメ。うーん。
 もっとさっくり
 snd.SoundMixer.computeSpectrum();
 とかで行くもんだと思っていた。諦めるか。どっちにしろこう、サウンドオブジェクト毎に拾える仕様で無い限りやろうとしてることはできないな。レフトライトでよいよもう。


参考:http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000296.html
http://faces.jp/2008/01/computespectrum.html
http://www.as-game.net/category/3640806-1.html