嵌入式 Amazon AppStream 2.0 直播会话的常量、函数和事件 - 亚马逊 AppStream 2.0

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

嵌入式 Amazon AppStream 2.0 直播会话的常量、函数和事件

以下主题提供了常量、函数和事件的参考信息,可用于配置嵌入式 AppStream 2.0 流式传输会话。

初始化嵌入式 AppStream 2.0 流媒体会话时,可以将以下 AppStream 2.0 用户界面元素传递到HIDDEN_ELEMENTS配置选项中。

使用 HIDDEN_ELEMENTS

初始化嵌入式 AppStream 2.0 流媒体会话时,可以将以下 AppStream 2.0 用户界面元素作为常量传递到HIDDEN_ELEMENTS配置选项中。

AppStream.Embed.Elements.TOOLBAR AppStream.Embed.Elements.FULLSCREEN_BUTTON AppStream.Embed.Elements.END_SESSION_BUTTON AppStream.Embed.Elements.TOOLBAR AppStream.Embed.Elements.CATALOG_BUTTON AppStream.Embed.Elements.WINDOW_SWITCHER_BUTTON AppStream.Embed.Elements.FILES_BUTTON AppStream.Embed.Elements.CLIPBOARD_BUTTON AppStream.Embed.Elements.COPY_LOCAL_BUTTON AppStream.Embed.Elements.PASTE_REMOTE_BUTTON AppStream.Embed.Elements.SETTINGS_BUTTON AppStream.Embed.Elements.STREAMING_MODE_BUTTON AppStream.Embed.Elements.SCREEN_RESOLUTION_BUTTON AppStream.Embed.Elements.REGIONAL_SETTINGS_BUTTON AppStream.Embed.Elements.FULLSCREEN_BUTTON AppStream.Embed.Elements.END_SESSION_BUTTON

以下三个元素可以作为字符串传递给 HIDDEN _ELEMENTS,而不是作为常量。

String 描述
'adminCommandsButton' 当您连接到 AppStream 2.0 映像生成器时,管理员命令按钮将显示在 AppStream 2.0 工具栏的右上角。将此字符串传递到 HIDDEN_ELEMENTS 可以隐藏管理员命令按钮。
'softKeyboardButton' 在启用触控功能的设备上的 AppStream 2.0 直播会话中,用户可以点击 AppStream 2.0 工具栏上的键盘图标以显示屏幕键盘。将此字符串传递到 HIDDEN_ELEMENTS 可以隐藏键盘图标。
'keyboardShortcutsButton' 在支持触控的设备上进行 AppStream 2.0 直播会话期间,用户可以点击 AppStream 2.0 工具栏上的 Fn 图标来显示键盘快捷键。将此字符串传递到 HIDDEN_ELEMENTS 可以隐藏 Fn 图标。

AppStream.Embed 对象的函数

下表列出了可以在 AppStream.Embed 对象上执行的函数。

函数 描述
AppStream.Embed(containerId:string, options:object) AppStream.Embed 对象构造函数。该构造函数初始化 AppStream.Embed 对象并与其通信,并使用 div 容器 ID。该 ID 用于注入 iframe。它还会注入一个包含 (配置选项的appstreamOptions对象sessionURLHIDDEN_ELEMENTS)。
endSession() 此函数终止流式传输会话,但不会销毁 iframe。如果您指定了重定向URL,iframe 会尝试加载。URL根据页面的CORS标题,URL可能无法加载。
launchApp(appId:string) 此函数使用映像创建期间指定的应用程序 ID,以编程方式启动应用程序。
launchAppSwitcher() 此函数将AppSwitcher命令发送到 AppStream 2.0 门户。这会在实例上触发 AppSwitcher 命令。
getSessionState() 此函数返回 sessionStatus 的对象。有关更多信息,请参阅 嵌入式 AppStream 2.0 直播会话活动
getUserInterfaceState()

此函数返回 UserInterfaceState 的对象。该对象包含以下内容的键值对:

sessionStatus:状态枚举

sessionTerminationReason:字符串

sessionDisconnectionReason:字符串

有关更多信息,请参阅 嵌入式 AppStream 2.0 直播会话活动

addEventListener(name, callback) 此函数添加了一个在触发指定事件时调用的回调函数。有关可以触发的事件列表,请参阅 嵌入式 AppStream 2.0 直播会话活动
removeEventListener(name, callback) 此函数删除指定事件的回调。
destroy() 此函数删除 iframe 并清除资源。此函数不会影响正在进行的流式传输会话。

嵌入式 AppStream 2.0 直播会话活动

下表列出了在嵌入式 AppStream 2.0 流式传输会话期间可以触发的事件。

事件 数据 描述
AppStream.Embed.Events.SESSION_STATE_CHANGE

sessionStatus: State enumeration

sessionTerminationReason:字符串

sessionDisconnectionReason:字符串

此事件在发生任何会话状态更改时触发。此事件包括已更改状态的映射。要检索完整会话状态,请使用 getSessionState() 函数。

以下是会话状态:

AppStream.Embed.SessionStatus.Unknown - 会话未启动且未预留

AppStream.Embed.SessionStatus.Reserved - 会话已预留但未启动。

AppStream.Embed.SessionStatus.Started - 用户已连接到会话并已开始流式传输。

AppStream.Embed.SessionStatus Disconnected - 用户已断开与会话的连接。

AppStream.Embed.SessionStatus.Ended - 会话已标记为已结束或已过期。

AppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGE

hiddenElements:字符串数组

isFullscreen:布尔值

isSoftKeyboardVisible:布尔值

此事件在发生任何会话状态更改时触发。此事件包括已更改状态的映射。要检索完整会话状态,请使用 getSessionState() 函数。
AppStream.Embed.Events.SESSION_ERROR

errorCode:数字

errorMessage:字符串

此事件在会话期间发生任何错误时触发。

添加事件监听器和结束嵌入式 AppStream 2.0 流式传输会话的示例

本节中的示例向您展示如何执行以下操作:

  • 为嵌入式 AppStream 2.0 直播会话添加事件监听器。

  • 以编程方式结束嵌入式 AppStream 2.0 直播会话。

示例 1:为嵌入式 AppStream 2.0 直播会话添加事件监听器

要针对嵌入式流式传输会话期间的会话状态更改、会话接口状态更改和会话错误添加事件侦听器,请使用以下代码:

appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_STATE_CHANGE, updateSessionStateCallback); appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGE, updateUserInterfaceStateCallback); appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_ERROR, errorCallback);

在此示例中,AppStream.Embed.Events.SESSION_STATE_CHANGEAppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGEAppStream.Embed.Events.SESSION_ERROR 是事件名称。

updateSessionStateCallbackupdateUserInterfaceStateCallbackerrorCallback 是您实施的函数。这些函数传递到 addEventListener 函数中,并在触发事件时调用。

示例 2:以编程方式结束嵌入式 AppStream 2.0 直播会话

要结束嵌入式 AppStream 2.0 流式传输会话,请使用以下函数:

appstreamEmbed.endSession();