Я реализую простую запись, приложение для воспроизведения, которое может воспроизводить и записывать WAV-файл.
требования заключаются в следующем:Получите уровень звука микрофона во время записи в Windows 7
1) Windows 7, Visual Studio 2010 (или 2012), C#
2) Запись, воспроизведение Wav файл спецификации информация: SAMPLERATE 22050, моно, BitsPerSample 16
3) может отображать микро уровня звука во время записи
с 1) и 2), я могу использовать LIB (Winmm.dll) и mciSendString() следующим образом
[DllImport("winmm.dll")]
private static extern long mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
// Open file to play
public void open(string file)
{
string command = "open \"" + file + "\" type waveaudio alias MyWav";
mciSendString(command, null, 0, 0);
}
// Start playing
public void play()
{
string command = "play MyWav";
mciSendString(command, null, 0, 0);
}
// Stop playing
public void stop()
{
string command = "stop MyWav";
mciSendString(command, null, 0, 0);
command = "close MyWav";
mciSendString(command, null, 0, 0);
}
// Start recording
public void record()
{
string command = "open new Type waveaudio Alias MyRec";
mciSendString(command, "", 0, 0);
command = "set capture time format ms bitspersample 16 channels 1 samplespersec 22050 alignment 4";
mciSendString(command, "", 0, 0);
command = "record MyRec";
mciSendString(command, "", 0, 0);
}
// Stop recording
public void stoprec()
{
string fileName = @"""D:\Rec1.wav""";
string command = "stop MyRec";
mciSendString(command, "", 0, 0);
command = @"save MyRec " + fileName;
Debug.WriteLine(command);
mciSendString(command, "", 0, 0);
command = "close MyRec";
mciSendString(command, "", 0, 0);
}
с 3), я также хочу использовать mciSendString. Я нашел следующую команду (статус):
string command = "status MyRec level ";
long mci_ret = mciSendString(command, "", 0, 0);
Но я не знаю, чтобы получить объем указанной команды, может кто-нибудь сказать мне путь?
Ref: команда статус от mciSendString() находится в Microsoft документ: http://msdn.microsoft.com/en-us/library/windows/desktop/dd798683%28v=vs.85%29.aspx
Он говорит: Уровень: Возвращает текущее значение звукового образца PCM.
Есть некоторые большие articales в CodeProject [Vista, Core Audio API Master Volume Control] (HTTP: //www.codeproject. com/Статьи/18520/Vista-Core-Audio-API-Master-Volume-Control? fid = 410669 & fr = 126 # xx0xx) – sees
или [Изменить основной том в Visual C++] (http://www.codeproject.com/Tips/233484/Change-Master-Volume-in-Visual-Cplusplus) – sees