Проблема в том, что Microsoft прекратила выпуск Lync Client SDK для Lync 2013 Client.Хотя SDK по-прежнему работает с последней версией Skype для бизнеса Client, он на самом деле медленно разрушается из-за несовместимости между текущим клиентом Skype для бизнеса и более ранним Lync Client SDK.
Область AudioDeviceSDK - это одна из известных областей SDK, где ломается Client SDK.Существует обходной путь, при котором вы можете перейти к фактическим необработанным COM-интерфейсам, которые использует Lync Client SDK, а затем использовать эти COM-объекты для прямого доступа к API.
Вы можете экранировать Lync Client SDK внеобработанные COM-объекты путем доступа к полю «InnerObject» объекта Lync Client SDK.
например:
static bool SetClientAudioDevice(LyncClient client, string name)
{
var innerClient = (ILyncClient)client.InnerObject;
var deviceManager = innerClient.DeviceManager;
Console.WriteLine("Current audio device: [{0}]", client.DeviceManager.ActiveAudioDevice.Name);
Console.WriteLine("Lync Client Audio Devices List:");
var ok = false;
foreach (var device in deviceManager.AudioDevices.OfType<Microsoft.Office.Uc.AudioDevice>())
{
Console.WriteLine(" AudioDevice: [{0}], Active[{1}], ID[{2}], IsCertified[{3}], Priority[{4}], Type[{5}]", device.Name, device.IsActive, device.Id, device.IsCertified, device.Priority, device.Type);
if (device.Name.IndexOf(name, StringComparison.InvariantCultureIgnoreCase) >= 0)
{
Console.WriteLine(" Setting active device!");
deviceManager.ActiveAudioDevice = device;
ok = true;
}
}
return ok;
}
Как указано в комментариях, вы также должны добавить ссылку на "Microsoft.Office.Uc ", а также установите для типа внедрения InteropType значение False.