SetSocketMediaStreamingMode 函数 (socketapi.h)

SetSocketMediaStreamingMode 函数指示网络是否用于传输需要服务质量的流媒体。

语法

HRESULT SetSocketMediaStreamingMode(
  BOOL value
);

参数

value

指示网络是否用于传输需要服务质量的流媒体。 这可确保以低延迟方式打开的套接字在 802.11 无线网络上获得正确的服务质量。

返回值

如果未发生错误, SetSocketMediaStreamingMode 将返回S_OK。 否则,错误代码将作为 HRESULT 返回。

注解

SetSocketMediaStreamingMode 函数用于指示网络是否用于传输需要服务质量的流媒体。 此函数通常由 IP 语音 (VoIP) 或类似应用使用,这些应用需要一致的服务质量。 SetSocketMediaStreamingMode 函数可由 Windows 应用商店应用或桌面应用使用。

通过 802.11 无线网络使用媒体流时,可能存在服务质量问题。 802.11 网络驱动程序将定期扫描其他附近的基础结构网络 (ESS) 或临时网络 (IBSS) 。 这允许无线网络适配器查找其他网络,并可能连接到具有更强信号的网络。 大多数当前的 802.11 网络驱动程序一次扫描所有可用通道作为一个系列。 当 802.11 网络驱动程序正在扫描其他网络并侦听其他通道时,它无法接收应用的数据包。 当 VoIP 应用无法接收音频流时,扫描其他网络所花费的时间可能会造成明显差距 (100 毫秒或更多) 。 对于双频 (2.4GHz 和 5GHz) 的 802.11 网络适配器,此扫描过程更长,因为扫描的通道更多。 这可能会导致音频被视为断断续续。

调用 SetSocketMediaStreamingMode 函数并将 参数设置为 TRUE 并且套接字将通过 802.11 无线网络适配器传输时,系统将通知无线网络驱动程序停止扫描其他网络。 这消除了 VoIP 和类似音频应用在 802.11 无线网络上使用时的断断续续,但也会影响在本地计算机或设备上运行的任何应用。

在某些情况下,关闭扫描可能会导致问题。 禁用扫描后,即使当用户离开网络时信号越来越弱,本地计算机也会保持连接到同一网络。

VoIP 或类似应用应关闭所有低延迟套接字,以还原 802.11 无线网络驱动程序的媒体流模式。 这将重新启用针对其他无线网络的扫描。

如果套接字不会通过 802.11 无线适配器发送或接收数据包, 则 SetSocketMediaStreamingMode 函数不起作用。

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 socketapi.h
Library Windows.Networking.lib
DLL Windows.Networking.dll

另请参阅

添加对网络的支持

Windows.Networking.BackgroundTransfer

Windows.Networking.Sockets