我想在我的应用程序中使用winmm.dll进行录制,这是我的代码:
mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
mciSendString("record recsound", "", 0, 0);
string command = "set capture time format ms bitspersample 16 channels 1 samplespersec 16000 alignment 4";
mciSendString(command, "", 0, 0);
但波形文件的格式与我设置的不完全相同。 如何在记录时设置比特率?
答案 0 :(得分:0)
您需要致电"设置"在你打电话之前#34;记录"。
来自MSDN:
当文件到时,定义波形音频数据的几个属性 存储数据已创建。这些属性描述了数据的方式 在文件中构建,一旦录制开始就无法更改
作为旁注;根据我的经验,你需要一次性设置所有参数。您无法单独设置通道,然后在此之后设置bitspersample。我还没有在任何地方找到这个记录,但是试验和错误+谷歌这样说。
以下是我的表现:
string command = "set recsound time format ms";
command += " bitspersample " + WaveBitsPerSample;
command += " channels " + WaveChannels;
command += " samplespersec " + WaveSamplesPerSec;
command += " bytespersec " + WaveBytesPerSec;
command += " alignment " + WaveAlignment;
error = mciSendString(command, _mciReturnData, 0, IntPtr.Zero);
bytespersec是相对于bitspersample,channels和samplespersec而且对齐是相对于bitspersample和channels。
bytespersec = bitspersample * channels * samplespersec / 8
alignment = bitspersample * channels / 8