在这里,我有 AS3 用于将录制的声音文件上传到服务器。当我在 Flash 中测试它时,它可以正常工作(录制声音并上传并转到下一帧),但在浏览器中它不起作用。似乎无法调用 myUpload 但我不知道为什么?应该是鼠标事件吗?谢谢。
function VOCWordToYourMp3()
{
setTimeout(startRecording,3000);
recorder.addEventListener(RecordingEvent.RECORDING, onRecording);
recorder.addEventListener(Event.COMPLETE, onRecordComplete);
}
function startRecording()
{
if (! recording)
{
recorder.record();
}
else if (recording)
{
recorder.stop();
recording = false;
}
}
function onRecording(e:RecordingEvent)
{
//
}
function onRecordComplete(e:Event):void
{
//
}
function renderWav(src, convertToMp3 = false)
{
//
function handleRenderTimer(e:TimerEvent)
{
//
}
function finishRender()
{
//
}
}
function makeIntoMp3(wav)
{
wav.position = 0;
mp3Encoder = new ShineMP3Encoder(wav);
mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete);
mp3Encoder.addEventListener(ProgressEvent.PROGRESS, mp3EncodeProgress);
mp3Encoder.start();
function mp3EncodeProgress(e:ProgressEvent):void
{
//
}
function mp3EncodeComplete(e: Event):void
{
myUpload('sound1',mp3Encoder.mp3Data);
}
}
function myUpload(namefile:String,sba: ByteArray):void
{
//upload code
}
更新:
在 Flash Player 10 和 Actionscript 3.0 中,对 URLLoader 的所有调用都必须在同一个调用堆栈中。 http://helpx.adobe.com/flash-player/kb/user-interaction-required-upload-download.html 相同的调用堆栈是什么意思?