【问题标题】:How to convert byte array to mp3 using aspx script from flash as3.0?如何使用来自 flash as3.0 的 aspx 脚本将字节数组转换为 mp3?
【发布时间】:2012-08-14 12:35:36
【问题描述】:

在 Flash as3.0 中,录制的语音存储在一个 BytesArray 变量中。现在需要将录制的声音存储为 .mp3 或 .wav 文件在 aspx 脚本中。任何可以帮助我?如何将字节数组转换为音频格式并保存在服务器中任何概念请分享。

【问题讨论】:

    标签: asp.net actionscript-3 flash bytearray audio-recording


    【解决方案1】:

    请参考我的代码。此代码是关于在录制您的声音后转换为 wav 或 mp3 保存的技能。转换后的输出 mp3 和 wav 文件保证了与 C 和 Java 的套接字通信。我在 Windows-xp(32bit) Windows7(64bit)、MacOSX、Android 中测试过。

    这里使用的框架是链接。

    WAVWriter: WAVWriter

    ShineMP3编码器: ShineMP3Encoder

    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();
    

    【讨论】:

    • 感谢您的即时回复。但是我设法对 ByteArray(用于 mp3)进行编码,我想从 ASP 应用程序(不是从 PHP)中保存它,而不是从 flash 应用程序中保存它。你知道用 ASP 保存它吗,因为我对 ASP 完全陌生。
    • 只是让您知道,这是将麦克风数据保存到 MP3 的最简洁和易于实现的方法。
    猜你喜欢
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多