Silverlight MediaElement比特率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Silverlight MediaElement比特率相关的知识,希望对你有一定的参考价值。

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

一切正常(回放),现在我已经对平台和API有了基本的了解,但我还是坚持了一个(非)琐碎的功能:我想获得当前播放视频的比特率信息,无论是什么如果它是一个比特率或多比特率文件......必须适用于这两种情况。

据我所知,我有MediaElement API的以下属性和方法有用但不够:DownloadProgressBufferProgress。除了TotalBytesDownloaded类的SmoothStreamingMediaElement属性之外,没有方法可以获得规范中的比特率或类似信息。

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

如果没有,有任何解决方法来处理它?

我是否可以访问MediaItem(来自MediaElement实例)以获取有关视频的更多信息?

答案

内置的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());
}

以上是关于Silverlight MediaElement比特率的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 MediaElement 是不是正在播放?

适用于 Windows Phone 8 的 MediaElement 速度比

Silverlight是否比JavaScript具有性能优势?

如何制作背景音乐?

silverlight wcf mvvm

与 Silverlight 一起使用的基于云的良好文件存储平台是啥?