0

我想创建一个 Flash 应用程序,通过用户的麦克风记录音频,然后上传到服务器,为了做到这一点,我找到了这段代码:

import flash.media.Microphone;
import flash.events;

const DELAY_LENGTH:int = 4000;
var mic:Microphone = Microphone.getMicrophone(); 
mic.setSilenceLevel(0, DELAY_LENGTH); 
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler); 

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

我还不能测试它,因为它给我抛出了这个编译错误:

"1046:Couldn't find type or is not a constant during compiling time: SampleDataEvent"

经过研究,我发现我必须更新 Flash 播放器版本以编译到 10.0.0 才能使其工作,但我不知道该怎么做。我的 IDE 是 Adob​​e Flash CS3 Portable,大多数示例都是针对其他 IDE,例如 Flex,我该怎么做?

4

1 回答 1

0

您没有导入flash.events.SampleDataEventsoundBytes也没有在micSampleDataHandler处理程序中定义。

import flash.media.Microphone;
import flash.events.SampleDataEvent;
import flash.utils.ByteArray;

const DELAY_LENGTH:int = 4000;
var mic:Microphone = Microphone.getMicrophone(); 
mic.setSilenceLevel(0, DELAY_LENGTH); 
mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler); 

function micSampleDataHandler(event:SampleDataEvent):void { 
  var soundBytes:ByteArray = new ByteArray();
  while(event.data.bytesAvailable) { 
    var sample:Number = event.data.readFloat(); 
    soundBytes.writeFloat(sample); 
  } 
}
于 2013-11-03T11:32:31.717 回答