在移动设备上进行第二次音频录制后未触发SampleDataEvent

第二次从ios设备上的麦克风播放录制的音频时,我有一个奇怪的行为。

目标:

我要实现的是一个应用程序,我们可以使用内置麦克风录制多个音频文件,还必须重新录制现有音频。

麻烦:

我第一次录制来自麦克风的音频,并想在完成录制后播放它,就像魅力一样。音频播放正常。

我第二次想用相同的byteaArray或新的byteArray录制音频,并想播放录制的音频。SampleDataEvent.SAMPLE_DATA会被触发几次,但会在4-6次后停止,然后不会触发。该应用程序不会崩溃,我没有收到任何错误。当我退出应用程序时(按iPad上的主页按钮),然后再次打开应用程序,音频开始播放。再次触发SampleData,该应用程序正常运行。但是在这里,如果我录制了新音频,则不会播放。退出应用程序,再次打开它,它正在播放。

录音代码(AudioRecord.as):

public function activate():void {
        //
        mic = Microphone.getMicrophone();
        mic.setSilenceLevel(0);
        mic.gain = 50;
        mic.rate = 44;
    }

    public function startRecord():void {
        trace("start audio record");
        isRecording = true;
        recordTime = 0;
        //
        soundBytes = null;
        soundBytes = new ByteArray();
        mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler);
    }

    private function micSampleDataHandler(event:SampleDataEvent):void {
        while (event.data.bytesAvailable) {
            var sample:Number = event.data.readFloat();
            soundBytes.writeFloat(sample);
        }
    }

播放音频代码(AudioBytesPlayer.as):

public function playSound(bytes:ByteArray):void {
        trace("AudioBytesPlayer - startSound");
        isPlaying = true;
        soundData = bytes;
        soundData.position = 0;
        sound.addEventListener(SampleDataEvent.SAMPLE_DATA, playbackSampleHandler);
        soundChannel.addEventListener(Event.SOUND_COMPLETE, onSC);
        soundChannel = sound.play();
    }

    private function playbackSampleHandler(event:SampleDataEvent):void {
        trace("playbackSampleHandler");
        for (var i:int = 0; i < 8192; i++) {
            if (soundData.bytesAvailable < 2) {
                stopSound();
                break;
            }
            var sample:Number = soundData.readFloat();
            event.data.writeFloat(sample);
            event.data.writeFloat(sample);
        }
    }

希望你们能帮助我。

看来,由于更新了IOS 8,因此会出现此问题。在IOS 7设备上,一切正常。希望Adobe或Apple附带修复程序

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单选按钮事件未第二次触发

来自分类Dev

jQuery mobile-第二次访问页面后未触发javascript

来自分类Dev

on('click'....)仅在第二次单击后触发

来自分类Dev

on('click'....)仅在第二次单击后触发

来自分类Dev

在第二次点击(不是第一次点击)上进行Ng点击触发操作

来自分类Dev

第二次发送动作时未触发佐贺

来自分类Dev

KendoWindow在第二次调用时未触发打开

来自分类Dev

第二次启动后在设备上运行时崩溃

来自分类Dev

$ scope更改后,ng-repeat不会第二次触发

来自分类Dev

PouchDB仅在第二次单击后更改触发

来自分类Dev

第二次更新后运行的PL / SQL表级别触发器

来自分类Dev

$ scope更改后,ng-repeat不会第二次触发

来自分类Dev

Boostrap-Popover仅在第二次点击后才被触发

来自分类Dev

事件侦听器仅在第二次单击后正确触发

来自分类Dev

第二次执行宏后,向下移动Excel单元格

来自分类Dev

phonegap addEventListener缓慢触发第二次执行

来自分类Dev

从第二次变更中触发“ onChange”

来自分类Dev

动画在第二次点击时触发

来自分类Dev

Primefaces 对咆哮的影响仅第二次触发

来自分类Dev

当第二次移动时,delphi按钮消失

来自分类Dev

Div使用ajax和django进行第二次单击后显示/隐藏

来自分类Dev

RNG在循环中进行第二次交互后给出相同的数字

来自分类Dev

jQuery中的DatePicker未第二次加载

来自分类Dev

单选按钮的值第二次未更改

来自分类Dev

花式盒子第二次未打开

来自分类Dev

第二次检入或陈述未执行

来自分类Dev

在起源分支上进行第二次git rebase之后,冲突数量过高的问题

来自分类Dev

第二次单击后功能起作用

来自分类Dev

第二次点击后做什么?

Related 相关文章

热门标签

归档