在Windows应用商店应用中获取互联网带宽/速度信息

时间:2013-08-28 12:36:12

标签: c# windows-8 windows-runtime microsoft-metro

我需要在Windows应用商店(c#)应用中获得有关实际互联网速度的相对详细信息。我需要这个,因为用户可以播放在线托管的视频。视频总有两个版本(高质量/低质量)。根据用户的互联网速度,应用程序应该流式传输相应的视频版本。

我尝试下载一个5MB的虚拟文件,然后查看此任务所需的时间(了解互联网速度)。但我发现结果过于分散和变化。我可能会通过更大的文件获得更好的结果,但这并不支持用户体验。

是否有更简单的方法来获取当前的互联网带宽?

P.S。:IIS无法顺畅播放。

PPS:也许这是正确的道路,但我不知道如何在我的案例中使用这个类:StreamSocketInformation.BandwidthStatistics

1 个答案:

答案 0 :(得分:0)

通过以下代码获取下载速度。

var connectionProfile = NetworkInformation.GetInternetConnectionProfile();
var dataPlanStatus = connectionProfile.GetDataPlanStatus();
ulong? outboundBandwidth = dataPlanStatus.OutboundBitsPerSecond;
if (outboundBandwidth.HasValue)
{
    System.Diagnostics.Debug.WriteLine("OutboundBitsPerSecond : " + outboundBandwidth + "\n");
}
else
{
    System.Diagnostics.Debug.WriteLine("OutboundBitsPerSecond : Not Defined\n");
}

Connecting to networks and web services (Windows Store apps using C#/VB/C++ and XAML)

Connection state and cost management (Windows Store apps using C#/VB/C++ and XAML)