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 |