0

Flash as3.0 では、録音された音声は BytesArray 変数に格納されます。録音したサウンドを .mp3 または .wav ファイルとして aspx スクリプトに保存する必要があります。誰でも私を助けることができますか?バイト配列をオーディオ形式に変換し、サーバーに保存する方法のコンセプトを共有してください。

4

1 に答える 1

2

次の私のコードを参照してください。このコードは、音声を録音した後、wavまたはmp3に変換して保存するスキルです。変換された出力mp3およびwavファイルは、CおよびJavaとのソケット通信について保証されています。私はWindows-xp(32bit)Windows7(64bit)、MacOSX、Androidでテストしました。

ここで使用されているフレームワークはリンクです。

WAVWriter: WAVWriter

ShineMP3Encoder: 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();
于 2012-08-14T13:38:00.733 に答える