![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2006
Сообщений: 33
|
в хелпе про SoundMixer написано
it does not control dynamically created Sound objects (that is, Sound objects created in ActionScript. С ходу у меня не получилось взять outputArray:ByteArray сигнала с микрофона... Означает ли это, что computeSpectrum не будет цеплять микрофон ? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А проверить?
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 33
|
Вот как я проверял... Пока не включишь музыку ничего не происходит..
может я чего то не понимаю или неправильно делаю... package {
import flash.display.*;
import flash.media.*;
import flash.events.*;
import flash.utils.ByteArray;
import flash.net.URLRequest;
import flash.system.*;
public class Sin extends Sprite
{
private var snd:Sound = new Sound();
private var mix:SoundMixer = new SoundMixer();
private var spectrumInfo:ByteArray = new ByteArray();
private var mc:MovieClip = new MovieClip();
private var mic:Microphone;
public function Sin()
{
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this.stage.align = StageAlign.TOP_LEFT;
this.addEventListener(Event.ENTER_FRAME, enterFrame);
snd.load(new URLRequest("sound.mp3"));
mc.graphics.lineStyle(1,0x000000);
mc.graphics.beginFill(0x0000ff, .5);
mc.graphics.drawRect(0,0,100,100);
mc.graphics.endFill();
this.addChild(mc);
this.mic = Microphone.getMicrophone();
Security.showSettings(SecurityPanel.MICROPHONE);
this.mic.setLoopBack(true);
this.mic.gain = 100;
this.mic.setSilenceLevel(0,-1);
this.mc.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(e:Event):void
{
this.snd.play();
}
private function enterFrame(e:Event):void
{
SoundMixer.computeSpectrum(this.spectrumInfo, false, 2);
this.graphics.clear();
this.graphics.lineStyle(1,0x000000);
this.graphics.beginFill(0x111000);
var w:uint = 2;
for (var i:Number =0; i < 256; i+=w)
{
var t:Number = this.spectrumInfo.readFloat();
var n:Number = (t * 100);
this.graphics.drawRect(i, 150, w, -n);
}
}
}//class
}
Последний раз редактировалось jinzito; 30.05.2007 в 14:24. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
0. Имена классов должны начинаться с прописной буквы, не больше, ни меньше.
1. Т.к. мне проверить не на чем, то могу лишь предположить, что из-за того, что Microphone не есть наследник Sound, использовать computeSpectrum нельзя. |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 33
|
0. исправил
1. этого я и боюсь... computeSpectrum по идее должен глобально как то работать буду искать дальше, думаю выход есть... Последний раз редактировалось jinzito; 30.05.2007 в 14:29. |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
"Because sound data from a microphone or from RTMP streams do not pass through the global SoundMixer object, the SoundMixer.computeSpectrum() method will not return data from those sources." (Help Flash CS3)
Но уровень звука вполне можно снимать. ![]()
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 33
|
пробую 8000 раз в секундуснять Microphone.activityLevel
проблема в том, что таймер нехочет вызываться даже каждую милисекунду... package {
import flash.display.Sprite;
import flash.utils.*;
import flash.events.*;
public class TimeTest extends Sprite
{
private var timer1:Timer = new Timer(1);//0.125
private var timer2:Timer = new Timer(1000);
private var i:Number = 0;
public function TimeTest()
{
this.timer1.addEventListener(TimerEvent.TIMER, timerHandler1);
this.timer2.addEventListener(TimerEvent.TIMER, timerHandler2);
this.timer1.start();
this.timer2.start()
}
private function timerHandler1(e:Object):void
{
i++;
}
private function timerHandler2(e:Object):void
{
trace(i);
i = 0;
}
}//class
}
В чем тут то грабли ? по идее timerHandler1 должен вызываться 999 - 1000 раз в секунду... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Help.
Цитата:
|
|
|||||
|
Ну вот и умерла светлая идея, которую я обдумывал по дороге домой
![]() А как же тогда сделано вот это: http://www.neave.com/av/ ? Или тут просто анализируется уровень микрофона?
__________________
Дело не в тебе Последний раз редактировалось AL.exe; 20.12.2007 в 21:29. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну там же так и написано, включите микрофон.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|