更快地下载用户映像Lync 2013 SDK

时间:2014-02-20 11:34:39

标签: c# xaml lync lync-client-sdk lync-2013

我在使用Lync 2013 sdk时遇到一个小问题,我的所有用户都在Active目录中配置了用户图像。但是,当开始登录lync(在我的应用程序中)时,有时用户图片会被加载,有时候虽然用户图像总是存在于活动目录中。有没有办法提高下载用户图像的成功率。其次,如果已经实现了线程概念,如何加快下载图像的过程,使整个过程看起来更快。

2 个答案:

答案 0 :(得分:0)

抱歉,我没有答案,但是......注意到你星期四发布了,这里是周一没有答案的,请考虑在这里发贴你的问题:

Microsoft Lync Client Development Forum

答案 1 :(得分:0)

使用Lync API时,类似下面的代码应该将图片作为一个流,然后您可以随意使用。

foreach (Contact contact in results.Contacts)
{
    List<ContactInformationType> lookup = new List<ContactInformationType>();
    lookup.Add(ContactInformationType.DisplayName);
    lookup.Add(ContactInformationType.Photo);

    IDictionary<ContactInformationType, object> contactDetails = contact.GetContactInformation(lookup);

    Stream s = (Stream)contactDetails[ContactInformationType.Photo];
    if (s != null)
    {
        string PicturePath = "Photos\\" + (string)contactDetails[ContactInformationType.DisplayName] + ".jpg";
        StreamWriter sw = new StreamWriter(PicturePath, false);
        CopyStream(s, sw.BaseStream);
        sw.Close();
    }
}

这很快,根据我的经验,总是会从Lync返回照片。

您是否已将组策略DisplayPhoto设置为PhotosFromADOnly以确保仅使用来自AD的照片,否则用户可以选择自己的照片,而Lync API将返回这些照片而非AD中的照片。

最后一个选项可能是从AD目录中获取图像。

获取用户的电子邮件地址并在AD中搜索。然后读出thumbnailPhoto属性。

Byte[] Photo = (Byte[])user.Properties["thumbnailPhoto"].Value; 

客户端上的Lync联系人数据并不总是与AD保持同步,并且可能需要一天才能同步,我不太确定Lync照片的效果如何。