带有计时器事件的录音

阿米尔侯赛因·海达里(Amirhosein Heydari)

我得到了用于记录用户声音的以下代码:

public class Main extends Sprite
     {
   private var mic:Microphone;
   private var waveEncoder:WaveEncoder = new WaveEncoder();
   private var recorder:MicRecorder = new MicRecorder(waveEncoder);
   private var recBar:RecBar = new RecBar();
   private var tween:Tween;
   private var fileReference:FileReference = new FileReference();

  public function Main():void
   {
    recButton.stop();
    activity.stop();
    mic = Microphone.getMicrophone();
    mic.setSilenceLevel(0);
    mic.gain = 100;
    mic.setLoopBack(true);
    mic.setUseEchoSuppression(true);
    Security.showSettings("2");
    addListeners();
}

private function addListeners():void
{
    recButton.addEventListener(MouseEvent.MOUSE_UP, startRecording);
    recorder.addEventListener(RecordingEvent.RECORDING, recording);
    recorder.addEventListener(Event.COMPLETE, recordComplete);
    activity.addEventListener(Event.ENTER_FRAME, updateMeter);
}

private function startRecording(e:MouseEvent):void
{
    if (mic != null)
    {
        recorder.record();
        e.target.gotoAndStop(2);

        recButton.removeEventListener(MouseEvent.MOUSE_UP, startRecording);
        recButton.addEventListener(MouseEvent.MOUSE_UP, stopRecording);

        addChild(recBar);

        tween = new Tween(recBar,"y",Strong.easeOut, -recBar.height,0,1,true);
    }
}

private function stopRecording(e:MouseEvent):void
{
    recorder.stop();

    mic.setLoopBack(false);
    e.target.gotoAndStop(1);

     recButton.removeEventListener(MouseEvent.MOUSE_UP, stopRecording);
    recButton.addEventListener(MouseEvent.MOUSE_UP, startRecording);

    tween = new Tween(recBar,"y",Strong.easeOut,0, - recBar.height,1,true);
}

private function updateMeter(e:Event):void
{
    activity.gotoAndPlay(100 - mic.activityLevel);
}

private function recording(e:RecordingEvent):void
{
    var currentTime:int = Math.floor(e.time / 1000);

    recBar.counter.text = String(currentTime);

    if (String(currentTime).length == 1)
    {
        recBar.counter.text = "00:0" + currentTime;
    }
    else if (String(currentTime).length == 2)
    {
        recBar.counter.text = "00:" + currentTime;
    }
}

private function recordComplete(e:Event):void
{
    fileReference.save(recorder.output, "recording.wav");
}
}

我想将鼠标事件替换为计时器事件。如果持续时间== 5,则开始录制,并在10秒钟后停止录制。我很困惑在哪里添加我的计时器代码,像这样:

var myIntrotime:Timer = new Timer(1000,5);
myIntrotime.addEventListener(TimerEvent.TIMER, startIntroTime);
myIntrotime.start();

var SecondsElapsed:Number = 1;

function startIntroTime(event:TimerEvent):void
{
    if (SecondsElapsed==5)
    {
        //start recording
            //start another timer2 and if timer2 finished stop recording
    }
    SecondsElapsed++;
}

有人可以帮我吗?

黄昏

如果您雇用flash.utils.setTimeout()打延迟电话,您可以做得更好这使您无法使用计时器。

setTimeout(startIntroTime,5000)
function startIntroTime():void
{
    //start recording
    setTimeout(stopRecording,10000);
}

setTimeout()手册

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有计时器的Android计时器

来自分类Dev

带有CircularProgressIndicator的倒数计时器

来自分类Dev

带有对象的 Javascript 计时器

来自分类Dev

C ++ 11中带有计时器的计时器:从纳秒到毫秒

来自分类Dev

SignalR:带有计时器的System.ObjectDisposedException

来自分类Dev

带有用户输入的倒数计时器

来自分类Dev

带有回调的计时器(原始)引发TypeError

来自分类Dev

在标签中显示带有MilliSeconds的计时器

来自分类Dev

带有回调的扭曲模拟计时器

来自分类Dev

关闭带有警告的PC计时器

来自分类Dev

带有JavaScript的实时表单倒数计时器

来自分类Dev

倒数计时器,带有动态日期

来自分类Dev

JavaFX中带有计时器的计数按钮点击

来自分类Dev

使用带有日历的计时器/调度程序

来自分类Dev

带有计时器的 C# 动画使背景闪烁

来自分类Dev

带有 System.Reactive 的可重置计时器

来自分类Dev

带有用户输入的 Javascript 倒数计时器

来自分类Dev

系统服务/计时器-带计时器的Oneshot服务执行多次,并带有“ start-limit-hit”失败

来自分类Dev

带有进度条C#的计时器倒计时

来自分类Dev

在事件上创建倒数计时器

来自分类Dev

jQuery设置事件触发计时器

来自分类Dev

更改计时器滴答事件的参数

来自分类Dev

计时器滴答事件未触发

来自分类Dev

计时器边界事件任务

来自分类Dev

无法触发事件(计时器)

来自分类Dev

更改计时器滴答事件的参数

来自分类Dev

活动中的计时器结束事件

来自分类Dev

jQuery设置事件触发计时器

来自分类Dev

Python Multipul事件计时器