Skype for Business 2016 没有客户端 SDK
No client SDK for Skype for Business 2016
我已经更新到 Skype for Business 2016 (Office 2016),我正在开发的与 Lync 客户端集成的桌面应用程序开始抛出异常。
我猜测 SDK 版本 15.0.4481.100 与 Skype for Business 版本 16.0.42.66.1003 不兼容,但我找不到比 Lync 2013 SDK 更新的 SDK (2014-03-17 ).
是否像 2013 一样不支持 Skype for Business 2016 的桌面客户端开发?
例外:
Unable to cast COM object of type 'System.__ComObject' to interface type
'Microsoft.Office.Uc.IAudioDevice2'. This operation failed because the QueryInterface call
on the COM component for the interface with IID '{86B3E5FE-4635-4C1E-A725-C80B71D04984}'
failed due to the following error: No such interface supported
(Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
更新
LyncClient.GetClient( sideBySide ).DeviceManager.AudioDevices
迭代音频设备时出现异常。使用嵌入式(UI 抑制)S4B 客户端启动和接受呼叫有效,sideByside 却不行。我原来的问题的答案似乎是肯定的,但不完全!
Lync Client SDK 2013 应该支持 Skype for Business 2016。目前还没有发布新的客户端 SDK。
您可以使用 ILyncClient "inner object"(来自 Microsoft.Office.Uc)解决此问题
例如:
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;
}
如 Ankit 所述,2013 SDK 也适用于 Skype for Business 2016。
要绕过安装限制 ("Microsoft Lync 2013 not found"),请使用 Jon Gallant 的建议:
http://blog.jongallant.com/2016/08/solution-lync-2013-not-found/
即解压缩 lyncsdk.exe 并手动安装适当的 MSI(x86 或 x64)。
我已经更新到 Skype for Business 2016 (Office 2016),我正在开发的与 Lync 客户端集成的桌面应用程序开始抛出异常。
我猜测 SDK 版本 15.0.4481.100 与 Skype for Business 版本 16.0.42.66.1003 不兼容,但我找不到比 Lync 2013 SDK 更新的 SDK (2014-03-17 ).
是否像 2013 一样不支持 Skype for Business 2016 的桌面客户端开发?
例外:Unable to cast COM object of type 'System.__ComObject' to interface type
'Microsoft.Office.Uc.IAudioDevice2'. This operation failed because the QueryInterface call
on the COM component for the interface with IID '{86B3E5FE-4635-4C1E-A725-C80B71D04984}'
failed due to the following error: No such interface supported
(Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
更新
LyncClient.GetClient( sideBySide ).DeviceManager.AudioDevices
迭代音频设备时出现异常。使用嵌入式(UI 抑制)S4B 客户端启动和接受呼叫有效,sideByside 却不行。我原来的问题的答案似乎是肯定的,但不完全!
Lync Client SDK 2013 应该支持 Skype for Business 2016。目前还没有发布新的客户端 SDK。
您可以使用 ILyncClient "inner object"(来自 Microsoft.Office.Uc)解决此问题
例如:
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;
}
如 Ankit 所述,2013 SDK 也适用于 Skype for Business 2016。
要绕过安装限制 ("Microsoft Lync 2013 not found"),请使用 Jon Gallant 的建议: http://blog.jongallant.com/2016/08/solution-lync-2013-not-found/
即解压缩 lyncsdk.exe 并手动安装适当的 MSI(x86 或 x64)。