2013-10-16 93 views
1

我正在为Silverlight开发一个自定义播放器,其中一个基于MediaElement,另一个基于SmootStreamingMediaElement。目前,我正在使用SDK 5.0的最新版本,但我希望在解决所有问题后支持以前的版本。Silverlight MediaElement比特率

所有的工作都很好(播放),现在我已经对平台和API有了一个基本的了解,但是我用一个(非)简单的功能:我想获取当前播放的比特率信息视频,无论它是单一比特率还是多比特率文件......都必须适用于这两种情况。

据我所知,我对MediaElement API有以下属性和方法,但有用但不够:DownloadProgressBufferProgress。没有获得规格中找到的比特率或类似信息的方法,但TotalBytesDownloaded属性为SmoothStreamingMediaElement类。

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

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

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

回答

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