в продолжение темы http://zhyk.ru/forum/showthread.php?t=1011920
В общем первое, что нам понадобиться это скачать библиотеку с официального сайта ее создателя(ей)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Download справа, фиолетовая кнопка
И подключить ее к проекту(надеюсь знаете как ) Исправлено на рабочую версию(сори за то, что вам не придется напрягаться и вникать в код)
Данный код, должен отключать все активные микрофоны, отключать - вырубать звук.
Примечание: Проверенно на Windows 7
Далее, комментарии в коде
Код:
using System;
using NAudio.CoreAudioApi;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
CoreAudioMicMute CAMM = new CoreAudioMicMute();
CAMM.SetMute(true);
Console.ReadKey();
}
internal class CoreAudioMicMute
{
private MMDevice[] rgMicDevice; //Для записи найденных для нас устройств
int MaxMicro = 0;
public CoreAudioMicMute()
{
MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
MMDeviceCollection devices = DevEnum.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active); // DataFlow.Capture - Микрофоны(или устройства в которые поступает звук), DeviceState.Active - Активные устройства
// Поиск активных устройств(для нас микрофонов)
MaxMicro = 0;
for (int i = 0; i < devices.Count; i++) // devices.Count - количество устройств(активные микрофоны)
{
MMDevice deviceAt = devices[i];
if (deviceAt.DataFlow == DataFlow.Capture && deviceAt.State == DeviceState.Active)
{
++MaxMicro;
}
}
// Заносим в массив (все) найденный(ые) микрофон(ы) или другие устройства(динамики, наушники или др)
rgMicDevice = new MMDevice[MaxMicro];
MaxMicro = 0;
for (int i = 0; i < devices.Count; i++)
{
MMDevice deviceAt = devices[i];
if (deviceAt.DataFlow == DataFlow.Capture && deviceAt.State == DeviceState.Active)
{
MaxMicro++;
rgMicDevice[MaxMicro - 1] = deviceAt;
}
}
if (MaxMicro == 0)//Если не найден ни один микрофон(устройство)
throw new InvalidOperationException("Микрофон не найден!"); //Было в коде, от куда я взял. Можно поменять на что угодно!!! ;)
}
public void SetMute(bool mute) //Функция, отключающая звук устройств записанных в массив private MMDevice[] rgMicDevice
{
for (int i = 0; i < MaxMicro; i++)
{
rgMicDevice[i].AudioEndpointVolume.Mute = mute; //= true - выключить звук устройства(для нас микрофона)
}
}
}
}
}
Вот и все
Добавлено через 1 час 17 минут
Как проверить, отключен ли микрофон(если он есть конечно). Панель управления->Оборудование и звук->(Звук)Изменение системных звуков->Запись Нажимаем на рабочий микрофон->свойства->уровни
В общем если вы написали в коде Ваш микрофон правильно, то звук микрофона должен выключиться.
Добавлено через 20 часов 39 минут
Как вы поняли, если читали комментарии в коде, можно настроить и на отключение наушников и колонок. Ну, а остальное догадаетесь сами
Последний раз редактировалось Serx91; 28.04.2015 в 10:49.
Причина: Добавлено сообщение
Мда, хотел поделиться, а мне минус за это. Естественно не помогло, я сам код не один час разбирал. Попробую сейчас выделить, что нужно менять в коде, чтобы заработало.
Примечание: У меня Windows 7, на остальных не знаю, будет работать или нет.
Добавлено через 1 час 9 минут
И еще мда - забыл, как сам раньше искал код рабочей программы... чем проще, тем понятней. В след раз постараюсь писать по понятней и универсальней.
Последний раз редактировалось Serx91; 28.04.2015 в 10:52.
Причина: Добавлено сообщение
Мда, хотел поделиться, а мне минус за это. Естественно не помогло, я сам код не один час разбирал. Попробую сейчас выделить, что нужно менять в коде, чтобы заработало.
Примечание: У меня Windows 7, на остальных не знаю, будет работать или нет.
Добавлено через 1 час 9 минут
И еще мда - забыл, как сам раньше искал код рабочей программы... чем проще, тем понятней. В след раз постараюсь писать по понятней и универсальней.
Чувак, те кто шарит как кодить(в общем) сами могут скачать библиотеку и вызвать 1 функцию и им это просто не интересно. А те кто до этого дойти не могут нуждаются в более детальном объяснении, например с момента "как создать проект". Так что ты промахнулся мимо обоих категорий )
Чувак, те кто шарит как кодить(в общем) сами могут скачать библиотеку и вызвать 1 функцию и им это просто не интересно. А те кто до этого дойти не могут нуждаются в более детальном объяснении, например с момента "как создать проект". Так что ты промахнулся мимо обоих категорий )
Хех, да я понимаю, точнее вспомнил жизнь) до момента, как пожелал стать программистом Надо было видео заснять, тогда плюсов было бы мильон))))
Добавлено через 49 минут
Да чего уж там, я даже если сейчас наткнусь на нужный мне код программы, я в упор не пойму, что это то, что мне нужно)))
Добавлено через 51 минуту
И пролистаю десятки сайтов, пока не найду мне нужное, а потом, еще и вспомню, что видел уже где такое)).
Последний раз редактировалось Serx91; 28.04.2015 в 12:23.
Причина: Добавлено сообщение