首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用as3.0中的aspx脚本将字节数组转换为mp3?

如何使用as3.0中的aspx脚本将字节数组转换为mp3?
EN

Stack Overflow用户
提问于 2012-08-14 20:35:36
回答 1查看 1.7K关注 0票数 0

在FlashAS3.0中,录制的语音存储在一个BytesArray变量中。现在需要将录制的声音存储为.mp3或.wav文件中的aspx脚本。有谁能帮我吗?如何将字节数组转换成音频格式并保存在服务器上有什么概念请分享。

EN

回答 1

Stack Overflow用户

发布于 2012-08-14 21:38:01

请参考下面的代码。这段代码是关于技能录音后将你的声音转换成wav或mp3来保存。转换后输出的mp3和wav文件是保证与C和Java进行socket通信的。我在Windows-xp(32位)、Windows7(64位)、MacOSX和安卓上进行了测试。

这里使用的框架是链接。

WAVWriter:WAVWriter

ShineMP3Encoder:ShineMP3Encoder

代码语言:javascript
复制
import com.adobe.audio.format.WAVWriter;
import fr.kikko.lab.ShineMP3Encoder;
import flash.events.SampleDataEvent;
import flash.media.Microphone;
import flash.media.Sound;
import flash.utils.ByteArray;
import flash.events.Event;

var mp3encoder:ShineMP3Encoder;
var microphone:Microphone;
var isRecording:Boolean=false;
var soundRecording:ByteArray;

function startMicRecording():void 
{
    isRecording=true;
    soundRecording = new ByteArray();
    microphone=Microphone.getMicrophone();
    microphone.rate=44;
    microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, gotMicData);
}

function stopMicRecording():void {

    isRecording=false;
    microphone.removeEventListener(SampleDataEvent.SAMPLE_DATA, gotMicData);
    soundRecording.position=0;

    convert2MP3();
}


function gotMicData(micData:SampleDataEvent):void 
{
    soundRecording.writeBytes(micData.data);
}

function convert2MP3():void
{
    var wavWrite:WAVWriter = new WAVWriter();
    wavWrite.numOfChannels=1;
    wavWrite.sampleBitRate=16;
    wavWrite.samplingRate=44100;

    var wav:ByteArray = new ByteArray();

    wavWrite.processSamples(wav, soundRecording, 44100,1);
    wav.position=0;

    /* 
     If the process is compressed into mp3 if you have big problems, 
     just as .wav format save. following code: 
     var file:FileReference = new FileReference();
     file.save(wav,"your_file_name.wav");
    */

    mp3encoder=new ShineMP3Encoder(wav);
    mp3encoder.addEventListener(Event.COMPLETE, onEncoded);
    mp3encoder.start();
}

function onEncoded(e:Event):void 
{
    mp3encoder.mp3Data.position=0;
    mp3encoder.saveAs("your_file_name.mp3");
}

startMicRecording();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11952395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档