1

我正在为 Silverlight 开发一个自定义播放器,一个基于,另一个MediaElement基于SmootStreamingMediaElement. 目前我正在使用最新版本的 SDK 5.0,但是一旦我的所有问题得到解决,我想支持以前的版本。

一切正常(播放),现在我对平台和 API 有了基本的了解,但我被一个(非)琐碎的功能所困扰:我想获取当前播放视频的比特率信息,无论如何如果它是单个比特率或多比特率文件......必须在这两种情况下都有效。

据我所知,我有以下MediaElementAPI 的属性和方法有用但还不够:DownloadProgressBufferProgress. 没有在规范中找到获取比特率或类似信息的方法,除了TotalBytesDownloaded属性SmoothStreamingMediaElement除了Class

使用 MediaElement 和SmootStreamingMediaElementAPI 可以获得视频文件的平均或即时比特率吗?

如果没有,有什么办法可以解决吗?

我是否有权访问MediaItem(从一个MediaElement实例中)以获取有关视频的更多信息?

4

1 回答 1

0

内置MediaElement类没有这样的功能。但是您可以使用更高级的SmoothStreamingMediaElement类来检测当前比特率。

这是一篇解释如何使用此类的 msdn 文章:Select and Monitor Bitrate

观看当前比特率的完整代码:

public MainPage()
{
    InitializeComponent();
    media.PlaybackTrackChanged += OnPlaybackTrackChanged;
}

void OnPlaybackTrackChanged(object sender, TrackChangedEventArgs e)
{
    Debug.WriteLine("Current bitrate: " + e.NewTrack.Bitrate.ToString());
}
于 2013-10-21T22:45:05.623 回答