запись голоса (winmm.dll) с использованием C # .net - PullRequest
4 голосов
/ 08 мая 2009

Моим требованием было создать утилиту, которая могла бы записывать голос (через микрофон) и сохранять на диске файлы .wav в качестве рабочего стола и веб-приложения. для конкретных пользователей, поэтому я выбрал технологию ActiveX, так как я не нашел другого лучшего способа (может быть, вы знаете, и можете помочь мне ... будет более чем приветствоваться)

Я использовал winmm.dll (он же интерфейс управления мультимедиа (MCI)), и он отлично работает, но на определенных компьютерах, например, когда я запускаю его на Vista, он отлично работает и на Win Server 2008, но на Windows 2003 и XP это не работает .. просто работает, есть ли какая-то предварительная потребность ... которая должна быть там или что я должен сделать, чтобы она работала на других вариантах окон.

Я не возражаю против использования DirectSound, если some1 рекомендует с некоторым примером кода для записи / сохранения / воспроизведения образца:)

Ответы [ 3 ]

5 голосов
/ 08 мая 2009

На самом деле никаких ошибок, никаких исключений и даже выходных файлов wav, которые я создаю, тогда как он отлично работает на Vista и 2k8, но не на предыдущих версиях.

m, используя звуковую карту по умолчанию, явно не настроенную

используя следующий код

[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);

для записи

mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
mciSendString("record recsound", "", 0, 0);

чтобы остановить и сохранить

mciSendString(@"save recsound " + OuputFolderName + FileName + ".wav", "", 0, 0);
mciSendString("close recsound ", "", 0, 0);
5 голосов
/ 08 мая 2009

Я бы использовал DirectShow для захвата аудио. Поскольку вы добавили в вопрос тег C #, я рекомендую использовать библиотеку DirectShow.NET . Убедитесь, что вы также загрузили сэмплы и посмотрите сэмплы PlayCap и CapWMV в папке Capture. Возможно, вы также захотите оформить статью Audio Capture в CodeProject.

Что касается того, почему некоторые версии ОС работают, подтвердили ли вы на этих системах, что аудиовход работает с другими программами? Вы разрешаете пользователю выбирать аудиоустройство или просто используете аудиоустройство по умолчанию? Вы получаете сообщение об ошибке или просто нет звука? В этом форуме убедитесь, что вы заключили свое имя файла в двойные кавычки.

0 голосов
/ 11 декабря 2009

Если вы все еще ищете библиотеку .net, посмотрите здесь:

http://windowsmedianet.sourceforge.net/index.html

и здесь

http://www.tapiex.com/ToneDecoder.Net.htm

Первый находится под лицензией LGPL, второй - коммерческий комплект компонентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...