- encoder = new EncoderWAV(this.hMixer_DeviceOut);
- encoder.InputFile = null; //STDIN
- encoder.OutputFile = CSound管理.strRecordOutFilename;
- encoder.UseAsyncQueue = true;
- encoder.Start(null, IntPtr.Zero, true); // PAUSE状態で録音開始
-
+ if (!string.IsNullOrEmpty(strRecordFileType))
+ {
+ switch (strRecordFileType.ToUpper())
+ {
+ case "WAV":
+ {
+ var e = new EncoderWAV(this.hMixer_DeviceOut);
+ //e.WAV_EncoderType = BASSChannelType.BASS_CTYPE_STREAM_WAV_PCM;
+ encoder = e;
+ }
+ break;
+ case "OGG":
+ {
+ var e = new EncoderOGG(this.hMixer_DeviceOut);
+ e.EncoderDirectory = strEncoderPath;
+ e.OGG_UseQualityMode = true;
+ e.OGG_Quality = (float)CSound管理.nBitrate;
+ //e.OGG_Bitrate = 128;
+ //e.OGG_MinBitrate = 0;
+ //e.OGG_MaxBitrate = 0;
+
+ encoder = e;
+ }
+ break;
+ case "MP3":
+ {
+ var e = new EncoderLAME(this.hMixer_DeviceOut);
+ e.EncoderDirectory = strEncoderPath;
+ e.LAME_UseVBR = false;
+ e.LAME_Bitrate = CSound管理.nBitrate;
+ encoder = e;
+ }
+ break;
+ default:
+ encoder = new EncoderWAV(this.hMixer_DeviceOut);
+ break;
+ }
+ encoder.InputFile = null; //STDIN
+ encoder.OutputFile = CSound管理.strRecordOutFilename;
+ encoder.UseAsyncQueue = true;
+ encoder.Start(null, IntPtr.Zero, true); // PAUSE状態で録音開始
+ }