基本上我的做法是直接呼叫別人寫好的物件,
物件上面都是裡面幾乎都式呼叫 directX Sound裡面的函式,
那他有可以輸出mp3檔案的部分,我目的只有輸出wav檔案,
所以以下範例都是以輸出wav檔案為主 :
//錄音的部分
Mp3SoundCapture _caputreObject;//錄音的物件
_caputreObject = new Mp3SoundCapture();
//傳入輸入的裝置
_caputreObject.CaptureDevice = (SoundCaptureDevice)this.comboBox1.SelectedItem;
//一般化音量
_caputreObject.NormalizeVolume = true;
//輸出的格式為wav
_caputreObject.OutputType = Mp3SoundCapture.Outputs.Wav;
//選擇輸出取樣資訊
_caputreObject.WaveFormat = (PcmSoundFormat)this.comboBox2.SelectedItem;
//開始錄音,傳入寫入檔案的檔名
_caputreObject.Start(this.saveFileDialog1.FileName);
//----------------------------------------------------------
//停止錄音
this._caputreObject.Stop();
//----------------------------------------------------------
//取得目前電腦輸入的裝置
foreach (SoundCaptureDevice device in SoundCaptureDevice.AllAvailable)
{
this.comboBox1.Items.Add(device);
}
//---------------------------------------------------------
//取得可用的取樣資訊
foreach (PcmSoundFormat format in PcmSoundFormat.StandardFormats)
{
this.comboBox2.Items.Add(format);
}
//---------------------------------------------------------
SecondaryBuffer secBuffer;//解碼的緩衝區
Device secDev;//輸出的裝置
secDev = new Device();
secDev.SetCooperativeLevel(this, CooperativeLevel.Normal);
//把檔名餵進去緩衝區
this.secBuffer = new SecondaryBuffer(this.openFileDialog1.FileName, secDev);
//撥放緩衝區的資料
this.secBuffer.Play(0, BufferPlayFlags.Looping);
//--------------------------------------------------------
執行檔部分
錄音物件參考: http://www.codeproject.com/KB/audio-video/Mp3SoundCapture.aspx
撥放wav檔案參考: http://www.cnblogs.com/lonelyxmas/archive/2009/11/23/1608607.html
沒有留言:
張貼留言