1
我已經搜索了很長時間,並沒有發現任何關於它。可能嗎?如何在Air Mobile App中錄製音頻?
我已經搜索了很長時間,並沒有發現任何關於它。可能嗎?如何在Air Mobile App中錄製音頻?
3年前進行測試時,Galaxy-Tab1設備的AIR2版本運行良好。
參考以下我的代碼。我可能會工作得很好。相信我。
這裏使用的框架是鏈接。
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");
}
我會提醒任何移動平臺上的MP3壓縮。我已經在Android和iPhone上嘗試了上述方法,壓縮需要很長時間才能播放一分鐘的音頻,並且手機變得緩慢而溫暖。 – 2012-08-09 16:13:02
真的嗎?必須小心。在過去,客戶沒有做出任何迴應,他們不知道這一點。我也沒有經歷過這樣的情況,當測試和不能。 – 2012-08-09 16:16:36
@TianzhenLin你的建議,而不是壓縮到MP3? – 2012-08-09 16:22:33