实时共享 SDK

实时共享是一种 SDK,旨在将 Teams 应用转换为协作式多用户体验,而无需编写任何专用的后端代码。 借助 Live Share,用户可以在会议期间共同watch、共同创建和共同编辑。

有时,屏幕共享是不够的,这就是为什么 Microsoft 构建了PowerPoint Live等工具,并将Whiteboard直接集成到 Teams 中的原因。 通过将 Web 应用程序直接置于会议界面中的中心位置,用户可以在会议和通话期间无缝协作。

功能概述

Live Share 有三个主要包,支持无限协作方案。 这些包 (DDS) 公开一组分布式数据结构,包括基元构建基块和总包方案。

Live Share 将会议与 Fluid Framework 无缝集成。 Fluid Framework 是用于分发和同步共享状态的客户端库集合。 实时共享提供完全托管的免费功能,并可随时使用由 Teams 安全和全局缩放提供支持的 Azure Fluid Relay

Live Share 核心

Live Share 支持通过几行代码连接到与每个会议关联的特殊 Fluid Container。 除了 Fluid Framework 提供的数据结构外,Live Share 还支持一组新的 DDS 类,以简化会议中的应用状态同步。

Live Share 核心包支持的功能包括:

  • 使用 LiveShareClient加入会议的 Live Share 会话。
  • 跟踪会议状态并将用户元数据与 LivePresence同步。
  • 使用 协调用户离开会话 LiveState时消失的应用状态。
  • 将倒计时计时器与 LiveTimer同步。
  • 使用 LiveEvent将实时事件发送到会话中的其他客户端。
  • 使用 LiveFollowMode向其他用户演示并关注其他用户。
  • 利用 Fluid Framework 的任何功能,例如 SharedMapSharedString

可以在 核心功能页上找到有关此包的详细信息。

Live Share 媒体

屏幕截图显示了 Live Share 视频共享体验的示例。

视频和音频是现代世界和工作场所的重要部分。 Live Share 媒体只需几行代码即可为任何媒体播放器实现媒体 同步 。 通过在播放器状态和传输控制层同步媒体,可以单独属性视图,同时通过应用提供可能的最高质量。 由于 Microsoft 不会重新广播你的媒体内容,因此你的许可和访问要求保持不变。

Live Share 媒体支持的功能包括:

  • 使用 MediaPlayerSynchronizer同步媒体播放器状态和跟踪。
  • 当用户在会议期间交谈时智能调整媒体音量。
  • 限制哪些用户可以修改玩家状态。
  • 在动态或计划的等待点暂停和恢复媒体同步。

可以在 Live Share 媒体页面上找到有关此包的详细信息。

注意

Live Share 不会转播媒体内容。 它设计用于嵌入式 Web 播放器,例如 HTML5 <video> 或 Azure Media Player。

Live Share 画布

屏幕截图显示了会议期间多个用户在画布上绘图的示例。

在会议中协作时,用户必须能够指出并强调屏幕上的内容。 Live Share 画布可以轻松地将墨迹书写、激光指针和光标添加到应用,以便进行无缝协作。

Live Share 画布支持的功能包括:

  • 使用 LiveCanvas向应用添加协作<canvas>
  • 使用笔、荧光笔、线条和箭头工具传达想法。
  • 使用激光笔有效地演示。
  • 跟随实时鼠标光标。
  • 配置可变设备和视图状态的设置。
  • 使用完全支持的鼠标、触摸和触笔输入。

可以在 Live Share 画布页上找到有关此包的详细信息。

为什么要使用 Live Share 生成应用?

构建协作应用可能很困难、耗时、成本高昂,并且涉及大规模且复杂的合规性要求。 Teams 用户花费大量时间与团队成员共同审阅工作、一起观看视频,并通过屏幕共享来集思广益,以提出新的想法。 借助实时共享 SDK,能够将应用转换为协作性更强但投资最少的项目。

下面是实时共享 SDK 的一些关键优势:

  • 无障碍会话管理和安全性。
  • 有状态和无状态分布式数据结构。
  • 媒体扩展可轻松同步视频和音频。
  • 一键墨迹书写、激光笔和光标。
  • 使用角色验证尊重会议权限。
  • 提供低延迟的免费和完全托管服务。

若要了解 Live Share 是否适合你的协作方案,了解 Live Share 与其他协作框架之间的差异很有帮助,包括:

Web 套接字

Web 套接字是一种无处不在的技术,用于在 Web 中实时通信,某些应用可能更倾向于使用自己的自定义 Web 套接字后端。 与 REST API 不同,Web 套接字在会话中的服务器和客户端之间保持开放连接。

与其他自定义 API 服务一样,要求通常包括对会话进行身份验证、区域映射、维护和缩放。 许多协作方案还需要维护服务器中的会话状态,这需要存储基础结构、冲突解决等。

通过使用 Live Share,无需任何开销即可获得 Web 套接字的所有功能。

Azure Fluid Relay

Azure Fluid Relay 是 Fluid Framework 的托管产品/服务,可帮助开发人员跨连接的 JavaScript 客户端构建实时协作体验和复制状态。 Microsoft Whiteboard、Loop 和 OneNote 都是使用 Fluid Framework 构建的应用示例。

与其他 Azure 服务一样,Azure Fluid Relay 旨在以最小的复杂性根据单个项目需求进行定制。 要求包括为 Fluid 容器和区域合规性开发身份验证方案。 配置后,开发人员可以专注于提供高质量的协作体验。

Live Share 托管服务

Live Share 提供由 Microsoft Teams 会议的安全性支持的一次性 Azure Fluid Relay 服务。 Live Share 容器仅限于满足参与者、维护租户驻留要求,并且可以通过几行客户端代码进行访问。

import { LiveShareClient, LivePresence } from "@microsoft/live-share";
import { LiveShareHost } from "@microsoft/teams-js";

// Join the Fluid container
const host = LiveShareHost.create();
const liveShare = new LiveShareClient(host);
const schema = {
  initialObjects: { presence: LivePresence },
};
const { container } = await liveShare.joinContainer(schema);

// ... ready to start app sync logic

重要

通过 Live Share SDK 的托管 Azure Fluid Relay 服务发送或存储的任何数据都可以访问 24 小时。 有关详细信息,请参阅 实时共享常见问题解答

使用自定义 Azure Fluid Relay 服务

虽然大多数人认为最好使用我们的免费托管服务,但在某些情况下,对 Live Share 应用使用自己的 Azure Fluid Relay 服务还是很有帮助。

如果以下项,请考虑使用自定义服务:

  • 要求在会议生存期之后在 Fluid 容器中存储数据。
  • 通过需要自定义安全策略的服务传输敏感数据。
  • 通过 Fluid Framework 开发功能,例如 , SharedMap为 Teams 外部的应用程序开发功能。

有关详细信息,请参阅自定义 Azure Fluid Relay 服务 操作指南

React集成

Live Share 具有专用React集成,使 Live Share 功能更易于集成到 React 应用中。 可以在组件首次装载时使用 LiveShareProvider 组件加入 Live Share 会话,而不是直接使用LiveShareClient。 每个都有LiveDataObject一个相应的React挂钩,旨在使使用 Live Share 变得非常简单。 有关详细信息,请参阅 Live Share for React GitHub 页面

用户方案

应用场景 示例
在营销评审期间,用户希望收集有关其最新视频编辑的反馈。 用户将视频共享到会议阶段并启动视频。 根据需要,用户暂停视频讨论场景,参与者在屏幕的各个部分进行绘制以强调关键点。
项目经理在规划期间与团队一起玩敏捷扑克。 经理将敏捷扑克应用共享到会议阶段,允许在团队达成共识之前玩规划游戏。
财务顾问在签署前与客户审阅 PDF 文档。 财务顾问将 PDF 合同共享到会议阶段。 所有与会者都可以在 PDF 中查看彼此的光标和突出显示的文本,然后双方签署协议。

重要

Live Share 根据 Microsoft Live Share SDK 许可证获得许可。 若要在应用中使用这些功能,必须先阅读并同意这些条款。

后续步骤

另请参阅