【发布时间】:2013-06-09 22:37:26
【问题描述】:
我正在创建一个项目,但我遇到了一些问题,该项目包括 2 个人用两个麦克风尖叫,然后用尖叫声填满一个酒吧。 问题是闪存如何同时处理这两个输入,这是代码。
import flash.events.ActivityEvent;
import flash.events.StatusEvent;
import flash.media.Microphone
var myTimer:Timer = new Timer(500);
myTimer.addEventListener(TimerEvent.TIMER, onMicActivity);
myTimer.start();
var deviceArray:Array = Microphone.names;
var micaux = 0;
var micaux2 = 0;
trace("Available sound input devices:");
for (var i:int = 0; i < deviceArray.length; i++)
{
trace(" " + deviceArray[i]+ " " + i);
}
var mic:Microphone = Microphone.getMicrophone();
var mic2:Microphone = Microphone.getMicrophone(1);
trace("mic1 "+mic.name);
trace("mic2 "+mic2.name);
mic.gain = 60;
mic.rate = 11;
mic.setUseEchoSuppression(true);
mic.setLoopBack(true);
mic.setSilenceLevel(5, 1000);
mic2.gain = 60;
mic2.rate = 11;
mic2.setUseEchoSuppression(true);
mic2.setLoopBack(true);
mic2.setSilenceLevel(5, 1000);
function onMicActivity(event:TimerEvent):void
{
//trace("activating=" + ", activityLevel=" +
// mic.activityLevel);
if (mic.activityLevel > 3) {
micaux = micaux + mic.activityLevel;
}
if (mic2.activityLevel >3){
micaux2 = micaux2 + mic2.activityLevel; }
trace("mic1 " +mic.activityLevel);
trace("mic 2" +mic2.activityLevel);
if (micaux>0){
soundbox.text = String(micaux);
healthBar.barColor.x += mic.activityLevel / 50;
healthBar.barColor.scaleX += mic.activityLevel / 50;}
if (micaux2>0){
soundbox2.text = String(micaux2);
healthBar2.barColor.x += mic2.activityLevel / 50;
healthBar2.barColor.scaleX += mic2.activityLevel / 50;
}
Soundbox 是显示用户分数的地方,而 healthbar.barcolor 是填充该分数的栏,当我运行此代码时,它看起来一切正常,但是当我打开该 swf 的设置时,只有 1 个麦克风工作两个工作正常:\
正在通过两个不同的 USB 端口连接硬件。
NETSTREAM 没有解决
提前致谢
【问题讨论】:
-
两个麦克风的输入是否清晰?
-
是的,都收到了。
-
+1 我的一个短期目标是开发一款游戏/应用程序,让父母在孩子玩游戏时会感到厌烦。伴随着所有的尖叫声,你手上肯定是赢家:)
标签: actionscript-3 flash actionscript microphone